@import url(https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&family=Outfit:wght@300&display=swap);

html {
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    height: 100%;
    word-break: break-all
}

*,
:after,
:before {
    -webkit-box-sizing: inherit;
    box-sizing: inherit
}

body {
    background-color: #fff;
    color: #232847;
    font-family: Noto Sans JP, sans-serif;
    font-size: 1rem
}

body,
iframe {
    height: 100%;
    width: 100%
}

iframe {
    aspect-ratio: 560/315
}

figure {
    margin: 0
}

img {
    height: auto;
    vertical-align: bottom
}

a {
    color: inherit
}

h1,
h2,
h3,
h4,
h5,
strong {
    font-weight: 700
}

input,
textarea {
    font-family: inherit;
    font-size: 100%
}

*,
:after,
:before {
    -webkit-box-sizing: border-box;
    box-sizing: border-box
}

ol,
ul {
    padding: 0
}

blockquote,
body,
dd,
dl,
figure,
h1,
h2,
h3,
h4,
ol,
p,
ul {
    margin: 0
}

h1,
h2,
h3,
h4 {
    font-weight: 400
}

html {
    max-width: 100%;
    scroll-behavior: smooth;
    width: 100%
}

body {
    line-height: 1.5;
    min-height: 100vh;
    text-rendering: optimizeSpeed
}

ol,
ul {
    list-style: none
}

img {
    display: block;
    max-width: 100%;
    width: 100%
}

article>*+* {
    margin-top: 1em
}

img:not([alt]) {
    -webkit-filter: blur(10px);
    filter: blur(10px)
}

button,
input,
select,
textarea {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background: transparent;
    border: none;
    border-radius: 0;
    font: inherit;
    outline: none
}

textarea {
    resize: vertical
}

input[type=checkbox],
input[type=radio] {
    display: none
}

button,
input[type=button],
input[type=submit],
label,
select {
    cursor: pointer
}

select::-ms-expand {
    display: none
}

a {
    text-decoration: none
}

.c-button {
    background-color: #04a576;
    border-radius: 50vh;
    -webkit-box-shadow: 0 1.3333333333vw 0 #0d736e;
    box-shadow: 0 1.3333333333vw 0 #0d736e;
    color: #fff;
    display: block;
    -webkit-font-feature-settings: "palt";
    font-feature-settings: "palt";
    font-size: 5.6vw;
    font-weight: 700;
    height: 18.6666666667vw;
    letter-spacing: .12em;
    line-height: 6.9333333333vw;
    margin-inline: auto;
    max-width: 89.8666666667vw;
    overflow: hidden;
    padding-top: 1.6vw;
    position: relative;
    text-align: center;
    -webkit-transition: .4s ease-out;
    transition: .4s ease-out;
    width: 100%
}

.c-button:after,
.c-button:before {
    content: "";
    inset: 0;
    position: absolute;
    -webkit-transition: .3s ease-out;
    transition: .3s ease-out
}

.c-button:before {
    background: -webkit-gradient(linear, left top, left bottom, from(#008a8a), to(rgba(0, 138, 138, 0)));
    background: linear-gradient(#008a8a, rgba(0, 138, 138, 0));
    opacity: 1
}

.c-button:after {
    background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 138, 138, 0)), to(#008a8a));
    background: linear-gradient(rgba(0, 138, 138, 0), #008a8a);
    opacity: 0
}

.c-button span {
    -webkit-filter: drop-shadow(0 0 20px #0D736E);
    filter: drop-shadow(0 0 20px #0D736E);
    position: relative;
    z-index: 1
}

.c-button__text {
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    font-size: 4.5333333333vw;
    font-weight: 500;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    letter-spacing: .14em;
    position: relative;
    z-index: 1
}

.c-button__text img {
    -webkit-filter: drop-shadow(0 0 20px #0D736E);
    filter: drop-shadow(0 0 20px #0D736E);
    margin-right: 1.6vw;
    width: 5.0666666667vw
}

.c-button__text span {
    font-size: 4.8vw
}

.c-cta {
    overflow: hidden;
    position: relative
}

.c-cta__button {
    bottom: 20vw;
    padding-inline: 7.4666666667vw;
    position: absolute;
    width: 100%
}

.p-fv {
    position: relative
}

.p-fv__cta {
    bottom: 12vw;
    position: absolute;
    width: 100%
}


.p-summary {
    margin-top: -9.6vw
}

.p-movie {
    position: relative;
    z-index: 1
}

.p-movie__cta {
    bottom: 29.0666666667vw;
    position: absolute;
    width: 100%
}

.p-invitation {
    margin-top: -15.2vw;
    position: relative
}

.p-invitation__inner {
    left: 50%;
    position: absolute;
    top: 98.1333333333vw;
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
    width: calc(100% - 10.13333vw)
}

.p-invitation__text {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-font-feature-settings: "palt";
    font-feature-settings: "palt";
    font-size: 4.2666666667vw;
    gap: 4.2666666667vw;
    letter-spacing: .1em;
    line-height: 1.76;
    margin-bottom: 13.6vw
}

.p-invitation__text span {
    background-color: #ffffd7;
    font-weight: 700
}

.p-profile {
    position: relative
}

.p-profile__text {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-font-feature-settings: "palt";
    font-feature-settings: "palt";
    font-size: 4.2666666667vw;
    gap: 4.8vw;
    letter-spacing: .1em;
    line-height: 1.76;
    padding-inline: 5.0666666667vw;
    position: absolute;
    top: 120vw
}

.p-footer {
    font-size: 3.4666666667vw;
    text-align: center
}

.p-footer__inner {
    color: #666;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-font-feature-settings: "palt";
    font-feature-settings: "palt";
    gap: 3.2vw;
    letter-spacing: .14em;
    line-height: 1.7;
    padding-block: 9.3333333333vw 9.6vw
}

.p-footer__inner span {
    display: block
}

.p-footer__copy {
    background: -webkit-gradient(linear, left top, right top, color-stop(0, #c15b95), to(#2d1954));
    background: linear-gradient(90deg, #c15b95 0, #2d1954);
    color: #fff;
    font-family: Outfit, sans-serif;
    -webkit-font-feature-settings: "palt";
    font-feature-settings: "palt";
    font-weight: 300;
    letter-spacing: .08em;
    line-height: 17.0666666667vw
}

.p-intro {
    background-image: url(../img/8_intro/bg-sp.webp);
    background-repeat: no-repeat;
    background-size: contain;
    margin-top: -12.2666666667vw;
    position: relative
}

.p-intro__inner {
    margin-inline: auto;
    padding-block: 129.8666666667vw 18.6666666667vw;
    width: calc(100% - 10.13333vw)
}

.p-intro__text {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-font-feature-settings: "palt";
    font-feature-settings: "palt";
    font-size: 4.2666666667vw;
    gap: 4.5333333333vw;
    letter-spacing: .1em;
    line-height: 1.76
}

.p-intro__text li {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex
}

.p-intro__text li:before {
    color: #9e64b0;
    content: "●"
}

.p-intro__text span {
    color: #9e64b0
}

.p-intro__img1 {
    margin-block: 12.8vw 13.3333333333vw
}

.p-intro__img2 {
    border-radius: 26.6666666667vw 0 0 0;
    margin-left: auto;
    margin-right: -5.0666666667vw;
    overflow: hidden;
    position: relative;
    width: 84.2666666667vw
}

.p-intro__visual1 {
    margin-bottom: 16vw
}

.p-intro__visual1Box {
    background-color: #fff;
    border-radius: 0 0 13.3333333333vw 0;
    margin-left: -5.0666666667vw;
    margin-top: -28vw;
    padding: 13.3333333333vw 5.0666666667vw 12.2666666667vw
}

.p-intro__visual1Title {
    margin-bottom: 7.4666666667vw;
    position: relative;
    width: 68.2666666667vw
}

.p-intro__img3 {
    margin-left: -5.0666666667vw;
    width: 84.2666666667vw
}

.p-intro__visual2Box {
    background-color: #fff;
    border-radius: 0 0 0 13.3333333333vw;
    margin-right: -5.0666666667vw;
    margin-top: -27.7333333333vw;
    padding: 13.0666666667vw 5.0666666667vw 10.1333333333vw
}

.p-intro__img3Title {
    margin-bottom: 8vw;
    width: 80.5333333333vw
}

.p-cv {
    position: relative
}

.p-cv__title {
    left: 50%;
    position: absolute;
    top: -1.6875rem;
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
    width: 51.125rem
}

.p-trouble {
    position: relative
}

.p-trouble__box {
    background-color: #fff;
    -webkit-filter: drop-shadow(.28px 3.99px 20px rgba(41, 41, 41, .4));
    filter: drop-shadow(.28px 3.99px 20px rgba(41, 41, 41, .4));
    left: 50%;
    padding: 7.2vw 5.3333333333vw 6.6666666667vw;
    position: absolute;
    top: 61.0666666667vw;
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
    width: calc(100% - 10.13333vw)
}

.p-trouble__list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 3.7333333333vw
}

.p-trouble__text {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-font-feature-settings: "palt";
    font-feature-settings: "palt";
    font-size: 4.8vw;
    font-weight: 500;
    gap: 4.1333333333vw;
    letter-spacing: .12em;
    line-height: 7.4666666667vw;
    position: relative
}

.p-trouble__text:not(:last-child) {
    padding-bottom: 2.6666666667vw
}

.p-trouble__text span {
    background: -webkit-gradient(linear, left top, left bottom, color-stop(60%, transparent), color-stop(0, #f5eff7), color-stop(85%, #f5eff7), color-stop(0, transparent), to(transparent));
    background: linear-gradient(180deg, transparent 60%, #f5eff7 0, #f5eff7 85%, transparent 0, transparent);
    color: #9d62af;
    font-weight: 700
}

.p-trouble__text:before {
    background-image: url(../img/7_trouble/check.webp);
    background-repeat: no-repeat;
    background-size: contain;
    content: "";
    display: block;
    -ms-flex-negative: 0;
    flex-shrink: 0;
    height: 5.3333333333vw;
    margin-top: 1.6vw;
    width: 5.3333333333vw
}

.p-trouble__text:not(:last-child):after {
    background-image: radial-gradient(circle farthest-side, #8b8b8b, #8b8b8b 20%, transparent 0, transparent);
    background-size: 1.0666666667vw;
    bottom: 0;
    content: "";
    display: inline-block;
    height: .5333333333vw;
    position: absolute;
    width: 100%
}

.p-voice {
    background-color: #e3d8e6;
    background-image: url(../img/6_voice/sp.webp);
    background-position: top;
    background-repeat: no-repeat;
    background-size: contain
}

.p-voice__list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 5.8666666667vw;
    padding-block: 46.4vw 13.0666666667vw
}

.p-voice__item {
    width: calc(100% - 2.66667vw)
}

.p-voice__item:nth-child(2n) {
    margin-left: auto;
    margin-right: 0
}

.u-display-pc {
    display: none
}

@media screen and (min-width:768px) {
    .l-main {
        left: 50%;
        position: relative;
        -webkit-transform: translateX(-50%);
        transform: translateX(-50%);
        width: 1680px
    }

    .c-button {
        -webkit-box-shadow: 0 .375rem 0 #0d736e;
        box-shadow: 0 .375rem 0 #0d736e;
        font-size: 1.625rem;
        height: 5.125rem;
        line-height: 2.125rem;
        max-width: 33rem;
        padding-top: .375rem
    }

    .c-button:hover {
        -webkit-box-shadow: none;
        box-shadow: none;
        -webkit-transform: translate3d(0, .375rem, 0);
        transform: translate3d(0, .375rem, 0)
    }

    .c-button:hover:before {
        opacity: 0
    }

    .c-button:hover:after {
        opacity: 1
    }

    .c-button__text {
        font-size: 1.25rem
    }

    .c-button__text img {
        margin-right: .25rem;
        width: 1.625rem
    }

    .c-button__text span {
        font-size: 1.375rem
    }

    .c-cta__img {
        margin-inline: -10rem
    }

    .c-cta__button {
        bottom: 7.4375rem;
        padding: 0;
        right: 27rem;
        width: 23.875rem
    }

    .c-cta__button .c-button {
        height: 5.75rem;
        max-width: 100%;
        padding-top: .75rem
    }

    .p-fv__cta {
        bottom: 4.125rem;
        z-index: 1
    }


    .p-summary {
        margin-top: -2.25rem
    }

    .p-movie__cta {
        bottom: 11.5rem
    }

    .p-invitation {
        margin-top: -12.75rem
    }

    .p-invitation__inner {
        max-width: 44.5rem;
        top: 41.375rem;
        width: 100%
    }

    .p-invitation__text {
        font-size: 1.125rem;
        gap: 2rem;
        letter-spacing: .14em;
        margin-bottom: 3.75rem
    }

    .p-profile__text {
        font-size: 1.125rem;
        gap: 2.125rem;
        left: 50%;
        padding: 0;
        top: 39.6875rem;
        -webkit-transform: translateX(-50%);
        transform: translateX(-50%);
        width: 44.625rem
    }

    .p-footer {
        font-size: .9375rem
    }

    .p-footer__inner {
        gap: .5rem;
        padding-block: 2.875rem 2.9375rem
    }

    .p-footer__inner p {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        gap: 1em;
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center
    }

    .p-footer__copy {
        line-height: 4.25rem
    }

    .p-intro {
        background-image: url(../img/8_intro/bg.webp);
        margin-top: -7.5rem
    }

    .p-intro__inner {
        padding-block: 40.75rem 7.4375rem;
        width: 100%
    }

    .p-intro__inner .p-intro__text {
        margin-inline: auto;
        width: -webkit-fit-content;
        width: -moz-fit-content;
        width: fit-content
    }

    .p-intro__text {
        font-size: 1.125rem;
        gap: 2.0625rem;
        letter-spacing: .14em
    }

    .p-intro__img1 {
        margin: 2.375rem auto 4.375rem;
        width: 33rem
    }

    .p-intro__img2 {
        border-radius: 5.25rem 0 0 0;
        margin-right: 0;
        width: 40.25rem;
        z-index: 2
    }

    .p-intro__visual1 {
        margin-bottom: 5.0625rem
    }

    .p-intro__visual1Box {
        border-radius: 0 5.25rem 5.25rem 0;
        margin-left: 0;
        margin-top: -22.375rem;
        padding: 3.6875rem 6.625rem 3.5rem 24.5rem;
        width: 69rem
    }

    .p-intro__visual1Box .p-intro__text {
        letter-spacing: .12em
    }

    .p-intro__visual1Title {
        margin-bottom: 1.75rem;
        width: 29.125rem
    }

    .p-intro__img3 {
        margin-left: 0;
        width: 40.25rem
    }

    .p-intro__visual2Box {
        border-radius: 5.25rem 0 0 5.25rem;
        margin: -22.375rem 0 0 auto;
        padding: 3.625rem 24.375rem 3.625rem 12.75rem;
        width: 74.75rem
    }

    .p-intro__visual2Box .p-intro__text {
        letter-spacing: .14em
    }

    .p-intro__img3Title {
        margin-bottom: 1.9375rem;
        width: 34.125rem
    }

    .p-trouble__box {
        max-width: 53.5rem;
        padding: 1.6875rem 3.75rem 2rem;
        top: 14.5625rem
    }

    .p-trouble__list {
        gap: .3125rem
    }

    .p-trouble__text {
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        font-size: 1.5rem;
        gap: 1rem;
        line-height: 3.5rem
    }

    .p-trouble__text:not(:last-child) {
        padding-bottom: 0
    }

    .p-trouble__text:before {
        height: 1.875rem;
        margin-top: 0;
        width: 2.0625rem
    }

    .p-trouble__text:not(:last-child):after {
        background-image: radial-gradient(circle farthest-side, #8b8b8b, #8b8b8b 34%, transparent 0, transparent);
        background-size: .375rem;
        height: .1875rem
    }

    .p-voice {
        background-image: url(../img/6_voice/pc.webp)
    }

    .p-voice__list {
        display: -ms-grid;
        display: grid;
        gap: 1.625rem 0;
        -ms-grid-columns: (1fr)[3];
        grid-template-columns: repeat(3, 1fr);
        margin-inline: auto;
        max-width: 70.875rem;
        padding-block: 13.375rem 3.6875rem;
        width: 100%
    }

    .p-voice__item {
        width: 100%
    }

    .p-voice__item:nth-child(3n) {
        margin-left: -.625rem
    }

    .p-voice__item:nth-child(3n+1) {
        margin-left: .625rem
    }

    .u-display-pc {
        display: block
    }

    .u-display-sp {
        display: none
    }
}



.p-media {
    position: relative;
}
.p-media .movie {
    position: absolute;
    left: 50%;
    top: 71.92vw;
    width: 84.8%;
    height: 0;
    transform: translateX(-50%);
}
@media screen and (min-width:768px) {
    .p-media .movie {
        top: 373px;
        width: 712px;
    }
}