 @charset "utf-8";

@font-face {
    font-family: 'Noto Sans JP';
    src: url('../fonts/NotoSansJP-VariableFont_wght.woff2') format('woff2');
    font-weight: 100 900;
    font-display: swap;
}

/*All device
--------------------------------------------------*/
/* common */

img {
    width: auto;
    max-width: 100%;
    border-style: none;
    vertical-align: bottom;
    image-rendering: -webkit-optimize-contrast;
}

/* main */
main {
	width: 100%;
	text-align: center;
	overflow: hidden;
    color: #1a1a1a;
}

/* button */
.button {
    text-decoration: none;
    font-feature-settings: 'halt' on;
    transition: transform .3s;
}
@media (hover: hover) {
    .button:hover {
        text-decoration: none;
        transform: scale(1.05);
    }
}

/* mainvisual */
.mainVisual {
    font-family: 'Noto Sans JP', sans-serif;
}
.mainVisual__container {
}
.mainvisual__content {
    position: relative;
    display: flex;
    flex-direction: column;
    background: url(/doc/cp/u25_2603/assets_u25_2603/images/bg_mainvisual_title.png) left bottom/contain no-repeat;
}
.mainvisual__title {
    /* background: url(/doc/cp/u25_2603/assets_u25_2603/images/bg_mainvisual_title.png) left top/cover no-repeat; */
    order: 1;
    padding: 24px 25px;
}
.mainvisual__image {
    order: 0;
}
.mainvisual__deco {
    position: absolute;
    width: max(335px, 335 / 390 * 100vw);
    right: 0;
    bottom: min(-47px, -47 / 390 * 100vw);
    pointer-events: none;
}
.mainvisual__cta {
    padding: 5% 6.5% 13%;
}
.mainvisual__buttonFrame {
    padding: 0 10px;
}
.mainvisual__buttonFrame .button {
    color: #fff;
    padding: 8px 0 12px;
    width: 100%;
    position: relative;
    border-radius: 30px;
    background: #9F1547;
    color: #fff;
    display: grid;
    place-items: center;
    max-width: 320px;
    margin: 0 auto 12px;
}

.mainvisual__buttonFrame .button span{
    font-size: 18px;
    font-weight: 700;
    line-height: 20px;
}
.mainvisual__buttonFrame .button > span:first-child {
    font-size: 12px;
}
.mainvisual__buttonFrame .entry__icon {
    position: absolute;
    width: 14px;
    height: 14px;
    right: 27px;
    top: 50%;
    translate: 0 -50%;
}
.mainvisual__annotation {
    text-align: left;
    font-size: 10px;
    font-weight: 400;
    text-indent: -1em;
    padding-left: 1em;
    line-height: 1.5; 
}
.mainvisual__annotation + .mainvisual__annotation {
    margin-top: 4px;
}
.mainvisual__annotation a{
    font-weight: 700;
    color: #9F1547;
    text-decoration: underline;
    text-decoration-thickness: 10%;
    text-underline-offset: 2px;
}
.mainvisual__pcContent {
    display: none;
}
/*PC device
--------------------------------------------------*/
@media (min-width: 768px) {
    .mainvisual__buttonFrame {
        width: 100%;
        max-width: 420px;
        /* margin-top: 37px; */
        margin-top: min(30px, 30 / 390 * 100vw);
        margin-bottom: 0;
    }
    .mainvisual__buttonFrame .button {
        padding: 14px 0 19px;
        border-radius: 75px;
    }
    .mainvisual__buttonFrame .entry__icon {
        width: 18px;
        height: 18px;
        right: 36px;
    }
    .mainvisual__buttonFrame .button span{
        font-size: 22px;
        font-weight: 700;
        line-height: 1;
    }
    .mainvisual__buttonFrame .button > span:first-child {
        font-size: 14px;
        line-height: 1;
        margin-bottom: 7px;
    }
    .mainvisual__cta {
        margin: 0 auto;
        max-width: 1100px;
        width: 90%;
        padding: 30px 0 90px;
    }
    .mainvisual__annotation {
        font-size: 14px;
    }
    .mainvisual__content {
        flex-direction: row;
        background: url(/doc/cp/u25_2603/assets_u25_2603/images/bg_mainvisual_pccontent.png) left top/cover no-repeat;
    }
    .mainvisual__pcContent {
        position: relative;
        display: grid;
        place-content: center;
        place-items: center;
        width: 100%;
        /* background: url(/doc/cp/u25_2603/assets_u25_2603/images/bg_mainvisual_pccontent.png) left top/cover no-repeat; */
        flex: 1;
    }
    .mainvisual__title {
        order: 0;
        width: 100%;
        background: none;
        width: min(590px, 590 / 1440 * 100vw);
        padding: 0;
    }
    .mainvisual__image {
        order: 1;
        /* max-width: 650px; */
        width: min(650px, 650 / 1440 * 100vw);
    }
    .mainvisual__label {
        /* max-width: 516px; */
        width: min(516px, 516 / 1440 * 100vw);
        margin-top: min(40px, 40 / 1440 * 100vw);
    }
    .mainvisual__deco {
        right: initial;
        bottom: initial;
        pointer-events: none;
    }
    .mainvisual__deco.--01 {
        width: min(107px, 107 / 1440 * 100vw);
        right: max(-52px, -52 / 1440 * 100vw);
        bottom: 0;
    }
    .mainvisual__deco.--02 {
        width: min(100px, 100 / 1440 * 100vw);
        right: min(114px, 114 / 1440 * 100vw);
        top: min(8px, 8 / 1440 * 100vw);

    }
    .mainvisual__deco.--03 {
        width: min(100px, 100 / 1440 * 100vw);
        left: 0;
        top: 48%;
    }
}
@media (min-width: 1440px) {
    .mainVisual__container {
        max-width: 1440px;
        width: 100%;
        margin: 0 auto;
    }
}

/* step */
.step {
    font-family: 'Noto Sans JP', sans-serif;
    background: url(/doc/cp/u25_2603/assets_u25_2603/images/bg_step_sp.png) left top/cover no-repeat;
}

.step__container {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    text-align: left;
    padding: 15% 4% 110px;
}
.step__title {
    display: grid;
    place-content: center;
}
.step__titleLottie {
    display: block;
    width: min(566px, 100%);
    margin: 0 auto;
}
.step__titleLottie svg {
    display: block;
    width: 100%;
    height: auto;
}
.step__flow {
    margin: 0 auto;
    max-width: 500px;
    margin-top: 55px;
}
.step__item {
    position: relative;
    display:grid;
    gap: 20px;
    position: relative;
    padding: 24px 20px 20px;
    border: 2px solid #1a1a1a;
    background: #fff;
}
.step__item::after {
    content: '';
    position: absolute;
    top: -36px;
    left: -2px;
    width: 113px;
    height: 36px;
    aspect-ratio: 113/36;
    background: url(/doc/cp/u25_2603/assets_u25_2603/images/step_label1.png) left top/cover no-repeat;
} 
.step__item.--01::after {
    background-image: url(/doc/cp/u25_2603/assets_u25_2603/images/step_label1.png);
}
.step__item.--02::after {
    background-image: url(/doc/cp/u25_2603/assets_u25_2603/images/step_label2.png);
}
.step__item.--03::after {
    background-image: url(/doc/cp/u25_2603/assets_u25_2603/images/step_label3.png);
}
.step__item + .step__item{
    margin-top: 52px;
}
.step__head {
}
.step__heading {
}
.step__heading > * + * {
    margin-top: 10px;
}
.step__itemTitle {
    text-align: center;
    font-size: 22px;
    font-weight: 900;
    line-height: 1.5;
    text-decoration: underline;
    text-decoration-color: #e79;
    text-underline-offset: 4.4px;
    text-decoration-thickness: 3px;
}
.step__itemLabel {
    text-align: center;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.5;
}
.step__buttonFrame {
    margin-top: 17px;
    padding: 0 21.5px;
}
.step__buttonFrame .button {
    color: #fff;
    padding: 9px 0 11px;
    width: 100%;
    position: relative;
    border-radius: 30px;
    background: #9F1547;
    color: #fff;
    display: grid;
    place-items: center;
    max-width: 320px;
    margin: 0 auto;
}
.step__termFrame {
    margin-top: 20px;
}
.step__termTitle {
    background: #e79;
    color: #fff;
    font-size: 14px;
    line-height: 1.5;
    font-weight: 600;
    text-align: center;
    padding: 1px 0 3px;
}
.step__term {
    margin-top: 15px;
    padding: 0 25px;
}
.step__term > * + * {
    margin-top: 20px;
}
.step__termItemHeading {
    display: grid;
}
.step__termItemTitle {
    position: relative;
    font-size: 14px;
    color: #000;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 1px;
}
.step__termItemTitle::before {
    content: '';
    position: absolute;
    top: 50%;
    left: -16px;
    width: 10px;
    height: 10px;
    aspect-ratio: 1;
    border-radius: 50%;
    translate: 0 -50%;
    background: #e79;
}
.step__termItemText {
    margin-top: 8px;
    font-size: 22px;
    font-weight: 700;
    line-height: 23px;
    letter-spacing: 1px;
    font-feature-settings: 'halt' on;
}
.step__termItemText small{
    font-size: 16px;
    font-weight: 700;
    line-height: 23px;
    letter-spacing: 1px;
    font-feature-settings: 'halt' on;
}

.step__dateFrame {
    margin-top: 12px;
}
.step__dateHeading {
    display: grid;
    place-content: center;
}
.step__dateTitle {
    position: relative;
    font-size: 14px;
    color: #000;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 1px;
}
.step__dateTitle::before {
    content: '';
    position: absolute;
    top: 50%;
    left: -16px;
    width: 10px;
    height: 10px;
    aspect-ratio: 1;
    border-radius: 50%;
    translate: 0 -50%;
    background: #e79;
}
.step__date {
    margin-top: 4px;
    display: grid;
    place-content: center;
}
.step__dateText {
    color: #1A1A1A;
    font-feature-settings: 'halt' on;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.4;
}
.step__dateAnnotation {
    margin-top: 4px;
    color: #000;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.45;
    text-align: center;
}


.step__buttonFrame .button span{
    font-size: 18px;
    font-weight: 700;
    line-height: 20px;
}
.step__buttonFrame .button > span:first-child {
    font-size: 12px;
}
.step__buttonFrame .step__icon {
    position: absolute;
    width: 14px;
    height: 14px;
    right: 27px;
    top: 50%;
    translate: 0 -50%;
}
.step__annotation {
    margin-top: 8px;
    text-align: center;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.5; 
}
.step__annotation a{
    font-weight: 700;
    color: #9F1547;
    text-decoration: underline;
    text-decoration-thickness: 10%;
    text-underline-offset: 2px;
}
.step__thumb img{
    width: 100%;
    max-width: 100%;
}


/*PC device
--------------------------------------------------*/
@media (min-width: 768px) {
    .step {
        background: url(/doc/cp/u25_2603/assets_u25_2603/images/bg_step_pc.png) left top/cover no-repeat;
        background-position: 10% top;
    }
    .step__container {
        width: 95%;
        padding: 66px 0 80px;
    }
    .step__flow {
        margin-top: 86px;
    }
    .step__buttonFrame {
        padding: 0 10px;
    }
}
@media only screen and (min-width:960px){
    .step__flow {
        max-width: initial;
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 9px;
    }
    .step__item {
        display: grid;
        grid-template-rows: subgrid;
        grid-row: span 2;
        gap: 15px;
    }
    .step__item + .step__item {
        margin-top: 0;
    }
    .step__buttonFrame {
        margin-top: 30px;
    }
    .step__buttonFrame .button span {
        font-size: 16px;
    }
    .step__heading > * + * {
        margin-top: 5px;
    }
    .step__dateText {
        font-size: 18px;
    }
    .step__termItemText {
        font-size: 18px;
    }
}
@media only screen and (min-width:1200px) {
    .step__container {
        width: 100%;
    }
    .step__item {
        padding: 30px 24px 25px 27px;
    }
    .step__Flow {
        gap: 39px;
    }
    .step__buttonFrame {
        padding: 0 20px;
    }
}

/* entry */
.entry {
    font-family: 'Noto Sans JP', sans-serif;
}
.entry__container {
    width: 100%;
    margin: 0 auto;
    text-align: left;
    padding: 10% 6.5%;
}
.entry__buttonFrame {

}
.entry__buttonFrame .button {
    color: #fff;
    padding: 8px 0 12px;
    width: 100%;
    position: relative;
    border-radius: 30px;
    background: #9F1547;
    color: #fff;
    display: grid;
    place-items: center;
    max-width: 320px;
    margin: 0 auto;
}

.entry__buttonFrame .button span{
    font-size: 18px;
    font-weight: 700;
    line-height: 20px;
}
.entry__buttonFrame .button > span:first-child {
    font-size: 12px;
}
.entry__content {
    max-width: 620px;
    padding: 0 10px;
    margin: 0 auto;
}
.entry__buttonFrame .entry__icon {
    position: absolute;
    width: 14px;
    height: 14px;
    right: 27px;
    top: 50%;
    translate: 0 -50%;
}
.entry__annotation {
    margin-top: 12px;
    text-align: center;
    font-size: 10px;
    font-weight: 400;
    line-height: 1.5; 
}
.entry__annotation a {
    font-weight: 700;
    color: #9F1547;
    text-decoration: underline;
    text-decoration-thickness: 10%;
    text-underline-offset: 2px;
}
/*PC device
--------------------------------------------------*/
@media (min-width: 768px) {
    .entry__container {
        width: 100%;
        padding: 56px 0 46px;
    }
    .entry__buttonFrame .button {
        padding: 12px 0 16px;
        padding: 32px 0;
        border-radius: 75px;
        max-width: initial;
    }
    .entry__buttonFrame .entry__icon {
        width: 22px;
        height: 22px;
        right: 54px;
    }
    .entry__annotation {
        font-size: 12px;
    }
    .entry__buttonFrame .button span{
        font-size: 32px;
        font-weight: 700;
        line-height: 1;
    }
    .entry__buttonFrame .button > span:first-child {
        font-size: 18px;
        line-height: 1;
        margin-bottom: 7px;
    }
    .entry__annotation {
        margin-top: 20px;
        font-size: 14px;
    }
}

/* qa */
.qa {
    font-family: 'Noto Sans JP', sans-serif;
    background: url(/doc/cp/u25_2603/assets_u25_2603/images/bg_qa_sp.png) left top/cover no-repeat;
}

.qa__container {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    text-align: left;
    padding: 15% 6.5% 110px;
}

.qa__title {
    display: grid;
    place-content: center;
}
.qa__titleLottie {
    display: block;
    width: min(566px, 100%);
    margin: 0 auto;
}
.qa__titleLottie svg {
    display: block;
    width: 100%;
    height: auto;
}

/* qa - accordion */
.qa__list {
    margin-top: 40px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.qa__item {
    border: 2px solid #1a1a1a;
    overflow: hidden;
    padding-bottom: 15px;
    background: #fff;
}
.qa__question {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 15px 15px 0;
    cursor: pointer;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.6;
    list-style: none;
}
.qa__question::-webkit-details-marker {
    display: none;
}
.qa__question::marker {
    content: '';
}
.qa__icon {
    flex-shrink: 0;
    width: 20px;
    height: 22px;
}
.qa__questionText {
    flex: 1;
    font-size: 14px;
    font-weight: 800;
    line-height: 1.5;
    letter-spacing: -.06em;
}
.qa__toggle {
    position: relative;
    flex-shrink: 0;
    width: 14px;
    height: 14px;
    /* align-self: center; */
    translate: 0 3px;
}
.qa__toggle::before,
.qa__toggle::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    background: #1a1a1a;
    border-radius: 1px;
    transition: transform 0.3s ease;
}
.qa__toggle::before {
    width: 14px;
    height: 2px;
    translate: -50% -50%;
}
.qa__toggle::after {
    width: 2px;
    height: 14px;
    translate: -50% -50%;
}
details[open] .qa__toggle::after {
    transform: rotate(90deg);
}
.qa__answer {
    overflow: hidden;
    transition: height 0.3s ease;
}
.qa__answerInner {
    display: flex;
    gap: 10px;
    padding: 9px 15px 0;
}
details[open] .qa__answerInner {
    padding: 9px 15px 0;
}
.qa__answerText {
    flex: 1;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.5;
    color: #9F1547;
}

/*PC device
--------------------------------------------------*/
@media (min-width: 768px) {
    .qa {
        background: url(/doc/cp/u25_2603/assets_u25_2603/images/bg_qa_pc.png) left top/cover no-repeat;
    }
    .qa__container {
        width: 90%;
        padding: 80px 0 80px;
    }
    .qa__item {
        padding-bottom: 30px;
    }
    .qa__list {
        margin-top: 60px;
        gap: 10px;
    }
    .qa__icon {
        width: 25px;
        height: 29px;
    }
    .qa__question {
        padding: 30px 30px 0;
    }
    .qa__questionText {
        font-size: 18px;
        letter-spacing: 0;
    }
    .qa__answerInner {
        gap: 10px;
        padding: 14px 30px 0;
    }
    details[open] .qa__answerInner {
        padding: 14px 30px 0;
    }
    .qa__answerText {
        font-size: 16px;
        font-weight: 500;
        line-height: 1.5;
    }
    .qa__toggle {
        translate: 0 6px;
    }
    .qa__toggle::before {
        width: 18px;
    }
    .qa__toggle::after {
        height: 18px;
    }
}

/* terms */
.terms {
    font-family: 'Noto Sans JP', sans-serif;
}
.terms__container {
    width: 100%;
    max-width: 900px;
    margin: 0 auto;
    text-align: left;
    padding: 15% 6.5% 180px;
}
.terms__title {
    font-size: 18px;
    font-weight: 700;
    line-height: 1.5;
    text-align: center;
}
.terms__block {
    margin-top: 50px;
}
.terms__block + .terms__block {
    margin-top: 60px;
}
.terms__blockTitle {
    position: relative;
    font-size: 16px;
    line-height: 1.5;
    font-weight: 600;
    padding-bottom: 4px;
    border-bottom: 1px solid #999;
}
.terms__blockTitle::after {
    content: '';
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 80px;
    height: 1px;
    background: #9F1547;
}
.terms__blockText {
    margin-top: 10px;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.85;
}
.terms__blockText a{
    font-weight: 700;
    color: #9F1547;
    text-decoration: underline;
    text-decoration-thickness: 10%;
    text-underline-offset: 2px;
}
.terms__blockText small{
    display: block;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.5;
}
.terms__blockSubTitle {
    margin-top: 30px;
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.5;
}
.terms__blockSubTitle::before {
    content: '';
    display: inline-block;
    width: 22px;
    height: 2px;
    background: #9F1547;
    flex-shrink: 0;
}
.terms__blockList {
    margin-top: 12px;
}
.terms__blockList li{
    font-size: 14px;
    line-height: 1.85;
    font-weight: 400;
}
.terms__blockList li.--fs_12{
    font-size: 12px;
    line-height: 1.5;
    font-weight: 400;
}
.terms__blockList.--unorder {
    list-style: disc;
    padding-left: 20px;
}
.terms__blockList.--background{
    background: #f5f5f5;
    padding: 20px;
    padding-left: 40px;
    border-radius: 10px;
}
.terms__blockList.--unorder li + li {
    margin-top: 5px;
}
.terms__blockList.--unorder li a{
    font-weight: 700;
    color: #9F1547;
    text-decoration: underline;
    text-decoration-thickness: 10%;
    text-underline-offset: 2px;
}
.terms__blockTable {
    width: 100%;
    margin-top: 10px;
    border-collapse: separate;
    border-spacing: 0;
    text-align: center;
}
.terms__blockTable th,
.terms__blockTable td {
    border-bottom: 1px solid #d9d9d9;
    border-right: 1px solid #d9d9d9;
}
.terms__blockTable th:last-child,
.terms__blockTable td:last-child {
    border-right: none;
}
.terms__blockTable th{
    background: #666;
    font-size: 14px;
    font-weight: 400;
    color: #fff;
    padding: 5px 10px 4.5px;
}
.terms__blockTable td{
    background: #f5f5f5;
    font-feature-settings: 'halt' on;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.5;
    padding: 4.5px 10px;
    text-align: center;
    vertical-align: middle;
}
.terms__blockTable td.--textLeftSP {
    text-align: left;
}
.terms__blockTable.--half th,
.terms__blockTable.--half td {
    width: 50%;
}

/* --stack: SP縦積み → PC横並びテーブル */
.terms__blockTable.--stack {
    border: none;
}
.terms__blockTable.--stack th,
.terms__blockTable.--stack td {
    display: block;
    width: 100%;
}
.terms__blockTable.--stack td {
    border-bottom: 1px solid #d9d9d9;
    padding: 4.5px 0;
}
/*PC device
--------------------------------------------------*/
@media (min-width: 768px) {
    .terms__container {
        width: 90%;
        padding: 100px 0 180px;
    }
    .terms__blockTable th:last-child {
        width: 40%;
    }
    .terms__blockTable.--stack th,
    .terms__blockTable.--stack td {
        display: table-cell;
        width: auto;
    }
    .terms__blockTable.--stack th {
        width: 45%;
        border-bottom: 1px solid #d9d9d9;
    }
    .terms__blockTable.--stack td {
        border-bottom: 1px solid #d9d9d9;
    }
    .terms__blockTable td.--textLeftSP {
        text-align: center;
    }
}

/* cpend */
.button_cpend {
    color: #fff;
    padding: 8px 0 12px;
    width: 100%;
    position: relative;
    border-radius: 30px;
    background: #9F1547;
    color: #fff;
    display: grid;
    place-items: center;
    max-width: 320px;
    margin: 0 auto 12px;
    font-size: 14px;
    font-weight: 700;
    line-height: 20px;
}
/*PC device
--------------------------------------------------*/
@media (min-width: 768px) {
    .button_cpend {
        padding: 14px 0 19px;
        border-radius: 75px;
        font-size: 18px;
        text-align: center;
    }
}



/* utility */
.--mt10 {
    margin-top: 10px;
}
.--mt20 {
    margin-top: 20px;
}
.--mt30 {
    margin-top: 30px;
}
.--spNone {
    display: none;
}
.--pcNone {
    display: block;
}
@media only screen and (min-width:768px) {
    .--spNone {
        display: block;
    }
    .--pcNone {
        display: none;
    }
}

/* fade-in animation */
.js-fade {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}
.js-fade.is-visible {
    opacity: 1;
    transform: translateY(0);
}
.js-fade-step > * {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}
.js-fade-step.is-visible > * {
    opacity: 1;
    transform: translateY(0);
}
