@charset "UTF-8";

/* Reset & Base */
*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

body {
    font-family:
        "Noto Sans JP",
        "Hiragino Kaku Gothic ProN",
        "Hiragino Sans",
        "Yu Gothic",
        "Meiryo",
        Arial,
        sans-serif;
    line-height: 1.6;
    color: #1b1b1b;
    background-color: #f0f0f0;
}

img {
    max-width: 100%;
    width: 100%;
    height: auto;
    vertical-align: bottom;
}

a {
    text-decoration: none;
    color: inherit;
}

.cushion {
    position: relative;
    z-index: 1;
    display: inline-block;
    padding: 0.1vw 0.5vw 0.1vw 1vw;
}

.cushion::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #152850;
    transform: skewX(-15deg);
    z-index: -1;
}

.cushion2 {
    position: relative;
    z-index: 1;
    display: inline-block;
    padding: 0 2vw;
    margin-bottom: 0.5vw;
}

.cushion2::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: linear-gradient(90deg, rgba(0, 167, 235, 1), rgba(3, 232, 122, 1));
    z-index: -1;
    transform: skewX(-15deg);
    -webkit-transform: skewX(-15deg);
    -moz-transform: skewX(-15deg);
    -ms-transform: skewX(-15deg);
    -o-transform: skewX(-15deg);
}

.cushion3 {
    position: relative;
    z-index: 1;
    display: inline-block;
    padding: 0 1vw;
    margin-bottom: 0.5vw;
}

.cushion3::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #152850;
    z-index: -1;
}

.cushion4 {
    position: relative;
    z-index: 1;
    display: inline-block;
    padding: 0 1vw;
    margin-bottom: 0.5vw;
}

.cushion4::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #434343;
    z-index: -1;
}

@media screen and (min-width: 751px) {
    .txt__br-sp {
        display: none;
    }

    .cushion:first-child {
        padding-right: 0;
    }

    .cushion:nth-of-type(2) {
        padding-left: 0;
    }

    .result__txt3 .cushion3:nth-of-type(1),
    .result__txt3 .cushion3:nth-of-type(3) {
        padding-right: 0;
    }

    .result__txt3 .cushion3:nth-of-type(2),
    .result__txt3 .cushion3:nth-of-type(4) {
        padding-left: 0;
    }

    .result__txt7 .cushion3:nth-of-type(2) {
        padding-right: 0;
    }

    .result__txt7 .cushion3:nth-of-type(3) {
        padding-left: 0;
    }

    .result__txt9 .cushion3:nth-of-type(2) {
        padding-right: 0;
    }

    .result__txt9 .cushion3:nth-of-type(3) {
        padding-left: 0;
    }

    .result__txt11 .cushion3:nth-of-type(2) {
        padding-right: 0;
    }

    .result__txt11 .cushion3:nth-of-type(3) {
        padding-left: 0;
    }
}

@media screen and (max-width: 750px) {
    .txt__br-pc {
        display: none;
    }

    .cushion {
        padding: 0px 2.67vw 0 13.34vw;
        margin-bottom: 1.07vw;
    }

    .cushion2 {
        margin-bottom: 2vw;
        padding: 0 2.67vw 0 8vw;
    }

    .cushion3 {
        padding: 0 2.67vw;
        margin-bottom: 2vw;
    }

    .cushion4 {
        padding: 0 3.34vw;
        margin-bottom: 1.34vw;
    }
}

/* FV */
.fv {
    position: relative;
    width: 100%;
    height: auto;
}

.fv__txt {
    position: absolute;
    bottom: 1.2vw;
    left: 47vw;
    font-size: 0.7vw;
}

/* Campaign Section */
.campaign {
    width: 100%;
    background: linear-gradient(135deg, #00bfff 0%, #00e676 100%);
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 112px 20px;
}

.campaign__container {
    background-color: #fff;
    width: 100%;
    max-width: 1000px;
    /* Increased for PC */
    border-radius: 15px;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
    position: relative;
    padding-top: 50px;
    /* Space for the title */
    text-align: center;
}

/* Title Ribbon */
.campaign__title-wrapper {
    position: absolute;
    top: -40px;
    left: 50%;
    transform: translateX(-50%);
    background-color: #1a2340;
    /* Dark blue */
    color: #fff;
    padding: 10px 40px;
    /* Skew effect for ribbon shape */
    transform: translateX(-50%) skewX(-10deg);
    width: 80%;
    max-width: 500px;
    display: flex;
    justify-content: center;
    align-items: center;
    box-shadow: 3px 3px 0 rgba(0, 0, 0, 0.1);
}

.campaign__title {
    font-size: 40px;
    font-weight: 400;
    /* Un-skew text */
    transform: skewX(10deg);
    white-space: nowrap;
    letter-spacing: 0.1em;
}

.campaign__content {
    padding: 30px 40px 50px;
}

/* PC Layout */
.campaign__main {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 30px;
    margin-bottom: 30px;
}

.campaign__left {
    text-align: left;
}

.campaign__right {
    flex-shrink: 0;
}

/* Price Box */
.campaign__price-box {
    background-color: rgba(255, 246, 106, 0.28);
    /* Light yellow */
    display: inline-flex;
    align-items: baseline;
    justify-content: flex-start;
    /* Left align on PC */
    margin-bottom: 26px;
    flex-wrap: wrap;
}

.campaign__price-old {
    font-size: 20.27px;
    text-decoration: line-through;
    margin-right: 5px;
    font-weight: 700;
}

.campaign__price-arrow {
    color: #eb4d6c;
    font-size: 1rem;
    margin: 0 5px;
}

.campaign__price-new {
    font-size: 63px;
    font-weight: 700;
    color: #eb4d6c;
    /* Pinkish red */
    line-height: 1;
}

.campaign__price-new-text {
    font-size: 40px;
}

.campaign__price-tax {
    font-size: 0.9rem;
    color: #eb4d6c;
    font-weight: 700;
    margin-left: 2px;
}

/* Text */
.campaign__text {
    font-size: 20px;
    margin-bottom: 0;
    /* Removed margin as it's handled by gap or container */
    font-weight: 500;
    line-height: 1.8;
}

/* Coupon */
.campaign__coupon {
    margin-bottom: 0;
    display: flex;
    justify-content: center;
}

.campaign__coupon img {
    max-width: 420px;
    /* Limit size on PC */
}

/* Subtext */
.campaign__subtext {
    font-size: 20px;
    margin-bottom: 31px;
}

/* Button */
.campaign__btn {
    display: inline-flex;
    align-items: center;
    /* justify-content: center; */
    background: linear-gradient(to right, #00b0dc, #00d688);
    color: #fff;
    font-weight: 700;
    font-size: 28px;
    padding: 15px 30px;
    border-radius: 50px;
    width: 100%;
    max-width: 590px;
    box-shadow: 0 5px 15px rgba(0, 176, 220, 0.4);
    transition: transform 0.2s, box-shadow 0.2s;
    position: relative;
}

.campaign__btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(0, 176, 220, 0.5);
}

.campaign__btn::after {
    content: "▶";
    font-size: 0.8rem;
    margin-left: 10px;
    position: absolute;
    right: 20px;
}

.campaign__btn-icon {
    width: 65px;
    height: 65px;
    background-color: #fff;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-right: 15px;
}

.campaign__btn-icon img {
    width: 41px;
    height: auto;
}

/* Responsive Styles (SP) */
@media screen and (max-width: 750px) {
    .fv__txt {
        font-size: min(1.83vw, 13.67px);
        bottom: 3vw;
        left: 8vw;
    }

    .campaign {
        padding: 16vw 2vw 6.67vw;
    }

    .campaign__container {
        padding-top: 4.67vw;
        max-width: 100%;
    }

    .campaign__title-wrapper {
        top: -5.34vw;
        padding: 0 2.67vw;
        width: 90%;
        max-width: unset;
    }

    .campaign__title {
        font-size: 6.67vw;
    }

    .campaign__content {
        padding: 5.34vw 0 8vw;
    }

    .campaign__main {
        flex-direction: column;
        gap: 2.67vw;
        margin-bottom: 0;
    }

    .campaign__left {
        text-align: center;
    }

    .campaign__price-box {
        justify-content: center;
        padding: 1.07vw 1.33vw;
        margin-bottom: 2vw;
    }

    .campaign__price-old {
        font-size: 3.34vw;
    }

    .campaign__price-new {
        font-size: 11.07vw;
    }

    .campaign__price-new-text {
        font-size: 6.67vw;
    }

    .campaign__price-tax {
        font-size: 3.47vw;
    }

    .campaign__text {
        font-size: 4vw;
        margin-bottom: 0;
    }

    .campaign__right {
        width: 100%;
    }

    .campaign__coupon img {
        max-width: 100%;
        width: 85%;
    }

    .campaign__subtext {
        font-size: 4vw;
        margin-bottom: 5.07vw;
    }

    .campaign__btn {
        max-width: unset;
        width: 95%;
        font-size: 4.27vw;
        padding: 3.74vw 4.8vw;
        border-radius: 100px;
    }

    .campaign__btn-icon {
        width: 10vw;
        height: 10vw;
    }

    .campaign__btn-icon img {
        width: 6.27vw;
        height: 6.27vw;
    }

    .campaign__btn::after {
        right: 2vw;
    }
}


/* guidance */
.guidance {
    position: relative;
}

.guidance_txt1 {
    font-family: "Noto Serif JP", sans-serif;
    position: absolute;
    top: 3.6vw;
    left: 29.35vw;
    font-size: 2.8vw;
    color: #fff;
    letter-spacing: 0.2rem;
}

.guidance_txt2 {
    font-family: "Noto Serif JP", sans-serif;
    position: absolute;
    top: 3.6vw;
    left: 49.75vw;
    font-size: 2.8vw;
    color: #fff;
    letter-spacing: 0.2rem;
}

.guidance_txt3 {
    position: absolute;
    top: 14.05vw;
    left: 26.6vw;
    font-size: 1vw;
    line-height: 1.75vw;
    width: 20vw;
}

.guidance_txt4 {
    position: absolute;
    top: 36vw;
    left: 39.5vw;
    font-size: 1.6vw;
    line-height: 3vw;
    text-align: center;
    font-weight: bold;
}

.guidance_txt4>span {
    color: #00afe4;
}

.guidance_txt5 {
    position: absolute;
    top: 68.65vw;
    left: 37.35vw;
    font-size: 2vw;
    line-height: 3vw;
    text-align: center;
    color: #fff;
    font-weight: 600;
    letter-spacing: 0.24vw;
}

.guidance_txt6 {
    position: absolute;
    top: 88vw;
    left: 25vw;
    width: 16vw;
    font-size: 1vw;
    line-height: 1.2vw;
    text-align: center;
    color: #fff;
}

.guidance_txt7 {
    position: absolute;
    top: 87.7vw;
    left: 42vw;
    width: 16vw;
    font-size: 1vw;
    line-height: 1.2vw;
    text-align: center;
    color: #fff;
}

.guidance_txt8 {
    position: absolute;
    top: 88vw;
    left: 59vw;
    width: 16vw;
    font-size: 1vw;
    line-height: 1.2vw;
    text-align: center;
    color: #fff;
}

.guidance_txt9 {
    position: absolute;
    top: 103.8vw;
    left: 33.5vw;
    width: 16vw;
    font-size: 1vw;
    line-height: 1.2vw;
    text-align: center;
    color: #fff;
}

.guidance_txt10 {
    position: absolute;
    top: 103.6vw;
    left: 50.5vw;
    width: 16vw;
    font-size: 1vw;
    line-height: 1.2vw;
    text-align: center;
    color: #fff;
}

.guidance_txt11 {
    position: absolute;
    top: 116.3vw;
    left: 26.15vw;
    font-size: 2vw;
    line-height: 3.5vw;
    text-align: center;
    color: #fff;
    letter-spacing: 0.2vw;
}

.guidance_txt11 .cushion2 {
    padding: 0 3vw;
}

.guidance_txt12 {
    position: absolute;
    top: 121.5vw;
    left: 25.25vw;
    font-size: 1.5vw;
    line-height: 2.25vw;
}

.guidance_txt12>span {
    color: #f1446e;
}

@media screen and (max-width: 750px) {
    .guidance_txt1 {
        top: 8.27vw;
        left: 5.07vw;
        font-size: 7.47vw;
        letter-spacing: 1.71vw;
    }

    .guidance_txt2 {
        top: 22.8vw;
        left: 9.73vw;
        font-size: 7.47vw;
        letter-spacing: 0.64vw;
    }

    .guidance_txt3 {
        top: 94.8vw;
        left: 5.33vw;
        font-size: 4vw;
        letter-spacing: 0.13vw;
        width: auto;
        line-height: 7.07vw;
    }

    .guidance_txt4 {
        top: 152.67vw;
        left: 6.67vw;
        font-size: 6.67vw;
        line-height: 12vw;
    }

    .guidance_txt5 {
        top: 402.93vw;
        left: 6.8vw;
        font-size: 6.67vw;
        line-height: 10vw;
        letter-spacing: 0.64vw;
    }

    .guidance_txt6 {
        top: 496.3vw;
        left: 2vw;
        width: 96vw;
        font-size: 4.8vw;
        line-height: 7.5vw;
    }

    .guidance_txt7 {
        top: 583.8vw;
        left: 2vw;
        width: 96vw;
        font-size: 4.8vw;
        line-height: 7.5vw;
    }

    .guidance_txt8 {
        top: 679.77vw;
        left: 2vw;
        width: 96vw;
        font-size: 4.8vw;
        line-height: 7.5vw;
    }

    .guidance_txt9 {
        top: 766.53vw;
        left: 2vw;
        width: 96vw;
        font-size: 4.8vw;
        line-height: 7.5vw;
    }

    .guidance_txt10 {
        top: 857.8vw;
        left: 2vw;
        width: 96vw;
        font-size: 4.8vw;
        line-height: 7.5vw;
    }

    .guidance_txt11 {
        top: 914.8vw;
        left: -1.93vw;
        font-size: 6.67vw;
        line-height: 10.67vw;
    }

    .guidance_txt11 .cushion2 {
        padding: 0 2vw 0 7vw;
    }

    .guidance_txt12 {
        top: 929.33vw;
        left: 2.4vw;
        font-size: 4vw;
        line-height: 7.33vw;
    }
}

/* Contact Section */
.contact {
    width: 100%;
    background-color: #f5f5f5;
    padding: 70px 20px 60px;
    display: flex;
    justify-content: center;
    align-items: center;
}

.contact1 {
    background-color: #e4eef0;
}

.contact2 {
    background-color: #fff;
}

.contact__container {
    width: 100%;
    max-width: 900px;
    text-align: center;
}

.contact__text {
    font-size: 20px;
    font-weight: 700;
    margin-bottom: 30px;
    letter-spacing: 0.05em;
}

.contact__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(to right, #00b0dc, #00d688);
    color: #fff;
    font-weight: 700;
    font-size: 1.1rem;
    padding: 15px 30px;
    border-radius: 50px;
    width: 100%;
    max-width: 450px;
    box-shadow: 0 5px 15px rgba(0, 176, 220, 0.4);
    transition: transform 0.2s, box-shadow 0.2s;
    position: relative;
}

.contact__btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(0, 176, 220, 0.5);
}

.contact__btn::after {
    content: "▶";
    font-size: 0.8rem;
    margin-left: 10px;
    position: absolute;
    right: 20px;
}

.contact__btn-icon {
    width: 30px;
    height: 30px;
    background-color: #fff;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-right: 15px;
}

.contact__btn-icon img {
    width: 20px;
    height: auto;
}

/* Responsive Styles (SP) for Contact */
@media screen and (max-width: 750px) {
    .contact {
        padding: min(10vw, 75px) 15px;
    }

    .contact__text {
        font-size: min(4vw, 30px);
        margin-bottom: min(9.34vw, 70px);
    }

    .contact__btn {
        max-width: unset;
        width: 95%;
        font-size: min(4.27vw, 32px);
        padding: min(3.74vw, 28px) min(4.8vw, 36px);
        border-radius: 100px;
    }

    .contact__btn-icon {
        width: min(10vw, 75px);
        height: min(10vw, 75px);
    }

    .contact__btn-icon img {
        width: min(6.27vw, 47px);
        height: min(6.27vw, 47px);
    }

    .contact__btn::after {
        right: 15px;
    }
}

/* result */
.result {
    position: relative;
}

.result__txt1 {
    position: absolute;
    top: 5.5vw;
    left: 0;
    width: 100%;
    font-size: 2vw;
    line-height: 3vw;
    letter-spacing: 0.2vw;
    text-align: center;
}

.result__txt2 {
    position: absolute;
    top: 12.3vw;
    left: 0;
    width: 100%;
    font-size: 1.2vw;
    text-align: center;
}

.result__txt3 {
    position: absolute;
    top: 19.5vw;
    left: 50vw;
    font-size: 1.5vw;
    line-height: 2.5vw;
    color: #fff;
}

.result__txt4 {
    position: absolute;
    top: 27.8vw;
    left: 50.05vw;
    width: 23.7vw;
    font-size: 1vw;
    line-height: 1.5vw;
}

.result__txt5 {
    position: absolute;
    top: 44.9vw;
    left: 25vw;
    font-size: 1.5vw;
    line-height: 2.5vw;
    color: #fff;
}

.result__txt6 {
    position: absolute;
    top: 53.3vw;
    left: 26.35vw;
    width: 23vw;
    font-size: 1vw;
    line-height: 1.5vw;
}

.result__txt7 {
    position: absolute;
    top: 71.6vw;
    left: 50vw;
    font-size: 1.5vw;
    line-height: 2.5vw;
    color: #fff;
}

.result__txt8 {
    position: absolute;
    top: 79.9vw;
    left: 50.05vw;
    width: 23.7vw;
    font-size: 1vw;
    line-height: 1.5vw;
}

.result__txt9 {
    position: absolute;
    top: 96.8vw;
    left: 25vw;
    font-size: 1.5vw;
    line-height: 2.5vw;
    color: #fff;
}

.result__txt10 {
    position: absolute;
    top: 105.15vw;
    left: 26.35vw;
    width: 23vw;
    font-size: 1vw;
    line-height: 1.5vw;
}

.result__txt11 {
    position: absolute;
    top: 121.6vw;
    left: 50vw;
    font-size: 1.5vw;
    line-height: 2.5vw;
    color: #fff;
}

.result__txt12 {
    position: absolute;
    top: 129.9vw;
    left: 50.05vw;
    width: 23.7vw;
    font-size: 1vw;
    line-height: 1.5vw;
}

.result__txt13 {
    position: absolute;
    top: 148.85vw;
    left: 30.55vw;
    font-size: 1.2vw;
    line-height: 1.8vw;
    letter-spacing: 0.12vw;
    font-weight: 500;
    text-align: center;
}

@media screen and (max-width: 750px) {
    .result__txt1 {
        top: 6.27vw;
        left: 5.07vw;
        width: auto;
        font-size: 5.87vw;
        line-height: 10.4vw;
        letter-spacing: 0.43vw;
    }

    .result__txt2 {
        top: 49.33vw;
        left: 0;
        width: 100%;
        font-size: 4vw;
    }

    .result__txt3 {
        top: 82.3vw;
        left: 36.4vw;
        font-size: 4.8vw;
        line-height: 6.6vw;
    }

    .result__txt4 {
        top: 120.8vw;
        left: 7vw;
        width: 85%;
        font-size: 4vw;
        line-height: 6.4vw;
    }

    .result__txt5 {
        top: 194.5vw;
        left: 2.6vw;
        font-size: 4.8vw;
        line-height: 6.6vw;
    }

    .result__txt6 {
        top: 230.13vw;
        left: 7.73vw;
        width: 87%;
        font-size: 4vw;
        line-height: 6.4vw;
    }

    .result__txt6>span {
        letter-spacing: 0;
    }

    .result__txt7 {
        top: 303.4vw;
        left: 36.4vw;
        font-size: 4.8vw;
        line-height: 6.6vw;
    }

    .result__txt8 {
        top: 340.13vw;
        left: 8vw;
        width: 85%;
        font-size: 4vw;
        line-height: 6.4vw;
    }

    .result__txt9 {
        top: 413.8vw;
        left: 2.6vw;
        font-size: 4.8vw;
        line-height: 6.6vw;
    }

    .result__txt10 {
        top: 450vw;
        left: 8vw;
        width: 85%;
        font-size: 4vw;
        line-height: 6.4vw;
    }

    .result__txt11 {
        top: 518vw;
        left: 36vw;
        font-size: 4vw;
        line-height: 6.6vw;
    }

    .result__txt12 {
        top: 553.47vw;
        left: 8vw;
        width: 85%;
        font-size: 4vw;
        line-height: 6.4vw;
    }

    .result__txt12__span1 {
        letter-spacing: -4.4vw;
    }

    .result__txt12__span2 {
        letter-spacing: -3.2vw;
    }

    .result__txt13 {
        top: 616.27vw;
        left: 5.47vw;
        font-size: 4.27vw;
        line-height: 6.13vw;
        letter-spacing: 0.32vw;
    }
}

/* Voice Section */
.voice {
    width: 100%;
    background-image: url(../img/voice_bg.jpg);
    background-size: cover;
    background-position: center;
    padding: 3vw 1vw;
    color: #fff;
}

.voice__container {
    width: 100%;
    margin: 0 auto;
    text-align: center;
}

.voice__title {
    font-size: 2vw;
    font-weight: 400;
    margin-bottom: 2vw;
    letter-spacing: 0.05em;
}

/* Splide Customization */
.splide__track {
    padding-bottom: 2vw;
}

.splide__list {
    display: flex;
    /* Ensure slides are flex items for equal height */
    align-items: stretch;
    /* Stretch slides to match height */
}

.splide__slide {
    height: auto;
    padding-top: 60px;
    /* Allow slide to stretch */
}

.splide__pagination {
    bottom: 0;
}

.splide__pagination__page {
    background: #ccc !important;
    opacity: 1;
}

.splide__pagination__page.is-active {
    background: #ff8c00 !important;
    /* Orange active dot */
    transform: scale(1.2);
}

.splide__arrow {
    background: #f1446e !important;
    /* Pink arrow background */
    opacity: 1;
    width: 3vw !important;
    height: 3vw !important;
    opacity: 1 !important;
}

.splide__arrow svg {
    fill: #fff !important;
    width: 1vw;
    height: 1vw;
}

.splide__arrow--next {
    right: 20.7vw !important;
}

.splide__arrow--prev {
    left: 20.7vw !important;
}

/* Voice Card */
.voice__card {
    background-color: #fff;
    color: #333;
    padding: 0 20px 30px;
    margin: 40px 10px 10px;
    /* Top margin for icon overlap */
    position: relative;
    text-align: left;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
    height: calc(100% - 50px);
    /* Full height minus margins */
    display: flex;
    flex-direction: column;
    /* Clip the pseudo element */
}

.voice__card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100px;
    /* Increased height to cover icon area better */
    background-image: linear-gradient(92deg, rgba(1, 163, 248, 0.39), rgba(1, 219, 109, 0.39));
    /* Light blue */
    -webkit-clip-path: polygon(0 0, 100% 0, 100% 0%, 0 100%);
    clip-path: polygon(0 0, 100% 0, 100% 0%, 0 100%);
    z-index: 0;
}

.voice__icon-wrapper {
    /* width: 100px;
    height: 100px; */
    margin: -100px auto 15px;
    /* Pull up to overlap */
    position: relative;
    z-index: 1;
    flex-shrink: 0;
}

.voice__icon {
    width: 100%;
    height: 100%;
    /* clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%); */
    /* background-color: #fff; */
    /* Border effect */
    padding: 3px;
    /* Border thickness */
    display: flex;
    justify-content: center;
    align-items: center;
    /* box-shadow: 0 5px 10px rgba(0, 0, 0, 0.1); */
    /* Shadow doesn't work well with clip-path on parent, but trying */
    /* filter: drop-shadow(0 3px 5px rgba(0, 0, 0, 0.2)); */
}

.voice__icon img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    /* clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%); */
}

/* Gold border simulation using pseudo element if needed, but padding method above is simpler */

.voice__name-box {
    background-color: #00b0dc;
    color: #fff;
    text-align: center;
    padding: 5px 10px;
    margin-bottom: 15px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0px;
    flex-shrink: 0;
    z-index: 1;
}

.voice__name {
    font-size: 0.8vw;
    font-weight: 700;
}

.voice__attr {
    font-size: 0.8vw;
}

.voice__text {
    font-size: 0.8vw;
    line-height: 1.8;
    flex-grow: 1;
    z-index: 1;
    /* Allow text to grow/fill space */
}

.voice__text mark {
    background: linear-gradient(transparent 60%, #ffff00 60%);
}

.voice__closing {
    font-size: 24px;
    margin-top: 40px;
    line-height: 1.8;
    text-align: center;
}

/* Responsive Styles (SP) for Voice */
@media screen and (max-width: 750px) {
    .voice {
        padding: 5.33vw 0;
    }

    .voice__title {
        font-size: 5.87vw;
        margin-bottom: 4vw;
    }

    .voice__card {
        margin: 5.33vw 0 1.33vw;
        transition: transform 0.3s ease;
        transform: scale(0.9);
        /* Smooth transition for scaling */
    }

    .voice__name {
        font-size: 5vw;
    }

    .voice__attr {
        font-size: 5vw;
    }

    .voice__text {
        font-size: 4vw;
    }

    .voice__closing {
        font-size: 4vw;
    }

    /* Scale active slide on SP */
    .splide__slide.is-active .voice__card {
        transform: scale(1) !important;
        -webkit-transform: scale(1) !important;
        -moz-transform: scale(1) !important;
        -ms-transform: scale(1) !important;
        -o-transform: scale(1) !important;
    }

    .splide__slide {
        padding-top: min(13.34vw, 100px);
    }

    .voice__icon-wrapper {
        width: min(43.2vw, 324px);
        margin: max(-13.34vw, -100px) auto min(3.74vw, 28px);
    }

    .splide__arrow {
        width: 8.14vw !important;
        height: 8.14vw !important;
    }

    .splide__arrow--prev {
        left: 14.07vw !important;
    }

    .splide__arrow--next {
        right: 14.07vw !important;
    }

    .splide__pagination__page {
        width: 2.27vw !important;
        height: 2.27vw !important;
        margin: 0 2.27vw !important;
    }

    .splide__pagination {
        bottom: -3vw !important;
    }
}

.plan {
    position: relative;
}

.plan__txt1 {
    position: absolute;
    top: 4.85vw;
    left: 0;
    width: 100%;
    font-size: 2vw;
    line-height: 3vw;
    text-align: center;
    color: #fff;
    font-weight: 500;
    letter-spacing: 0.16vw;
}

.plan__txt2 {
    position: absolute;
    top: 16.45vw;
    left: 0;
    width: 100%;
    font-size: 1.5vw;
    line-height: 3vw;
    text-align: center;
    color: #fff;
    font-weight: 500;
    letter-spacing: 0.16vw;
}

.plan__txt2>span {
    display: inline-block;
    font-size: 1.2vw;
    margin-left: 0.5vw;
}

.plan__txt3 {
    position: absolute;
    top: 19.7vw;
    left: 30.25vw;
    font-size: 1.3vw;
    line-height: 2.8vw;
    font-weight: 300;
    letter-spacing: 0.13vw;
}

.plan__txt4 {
    position: absolute;
    top: 23.15vw;
    left: 30.45vw;
    font-size: 1vw;
    line-height: 1.7vw;
    font-weight: 300;
    letter-spacing: 0.2vw;
}

.plan__txt5 {
    position: absolute;
    top: 29.3vw;
    left: 45.1vw;
    font-size: 2.2vw;
    line-height: 2.2vw;
    font-weight: 300;
    letter-spacing: 0.29vw;
}

.plan__txt5__span1 {
    display: inline-block;
    font-size: 0.6vw;
    margin-left: 0.5vw;
    letter-spacing: 0.08vw;
}

.plan__txt5__span2 {
    display: inline-block;
    font-size: 0.75vw;
    margin-left: 1.4vw;
    letter-spacing: 0.14vw;
}

.plan__txt6 {
    position: absolute;
    top: 33.2vw;
    left: 45.1vw;
    font-size: 2.2vw;
    line-height: 2.2vw;
    font-weight: 300;
    letter-spacing: 0.24vw;
}

.plan__txt6__span1 {
    display: inline-block;
    font-size: 0.6vw;
    margin-left: 0.5vw;
    letter-spacing: 0.08vw;
}

.plan__txt6__span2 {
    display: inline-block;
    font-size: 0.75vw;
    margin-left: 1.4vw;
    letter-spacing: 0.14vw;
}

.plan__txt7 {
    position: absolute;
    top: 37.1vw;
    left: 45.1vw;
    font-size: 2.2vw;
    line-height: 2.2vw;
    font-weight: 300;
    letter-spacing: 0.24vw;
}

.plan__txt7__span1 {
    display: inline-block;
    font-size: 0.6vw;
    margin-left: 0.5vw;
    letter-spacing: 0.08vw;
}

.plan__txt7__span2 {
    display: inline-block;
    font-size: 0.75vw;
    margin-left: 1.4vw;
    letter-spacing: 0.14vw;
}

.plan__txt8 {
    position: absolute;
    top: 45.25vw;
    left: 0;
    width: 100%;
    font-size: 1.5vw;
    line-height: 3vw;
    text-align: center;
    color: #fff;
    font-weight: 500;
    letter-spacing: 0.16vw;
}

.plan__txt8>span {
    display: inline-block;
    font-size: 1.2vw;
    margin-left: 0.5vw;
}

.plan__txt9 {
    position: absolute;
    top: 48.5vw;
    left: 30.25vw;
    font-size: 1.3vw;
    line-height: 2.8vw;
    font-weight: 300;
    letter-spacing: 0.13vw;
}

.plan__txt10 {
    position: absolute;
    top: 51.65vw;
    left: 29.95vw;
    font-size: 1vw;
    line-height: 1.7vw;
    font-weight: 300;
    letter-spacing: 0.12vw;
}

.plan__txt11 {
    position: absolute;
    top: 56.25vw;
    left: 45.1vw;
    font-size: 2.2vw;
    line-height: 2.2vw;
    font-weight: 300;
    letter-spacing: 0.24vw;
}

.plan__txt11__span1 {
    display: inline-block;
    font-size: 0.6vw;
    margin-left: 0.5vw;
    letter-spacing: 0.08vw;
}

.plan__txt12 {
    position: absolute;
    top: 60.2vw;
    left: 45.1vw;
    font-size: 2.2vw;
    line-height: 2.2vw;
    font-weight: 300;
    letter-spacing: 0.24vw;
}

.plan__txt12__span1 {
    display: inline-block;
    font-size: 0.6vw;
    margin-left: 0.5vw;
    letter-spacing: 0.08vw;
}

.plan__txt13 {
    position: absolute;
    top: 64.75vw;
    left: 32.75vw;
    font-size: 1.1vw;
    font-weight: 300;
    letter-spacing: 0.04vw;
}

.plan__txt14 {
    position: absolute;
    top: 72.1vw;
    left: 0;
    width: 100%;
    font-size: 1.5vw;
    line-height: 3vw;
    text-align: center;
    color: #fff;
    font-weight: 500;
    letter-spacing: 0.16vw;
}

.plan__txt14>span {
    display: inline-block;
    font-size: 1.2vw;
    margin-left: 0.5vw;
}

.plan__txt15 {
    position: absolute;
    top: 75.3vw;
    left: 30vw;
    font-size: 1.3vw;
    line-height: 2.8vw;
    font-weight: 300;
    letter-spacing: 0.13vw;
}

.plan__txt16 {
    position: absolute;
    top: 78.4vw;
    left: 30.4vw;
    font-size: 1vw;
    line-height: 1.7vw;
    font-weight: 300;
    letter-spacing: 0.1vw;
}

.plan__txt17 {
    position: absolute;
    top: 83vw;
    left: 45.1vw;
    font-size: 2.2vw;
    line-height: 2.2vw;
    font-weight: 300;
    letter-spacing: 0.24vw;
}

.plan__txt17__span1 {
    display: inline-block;
    font-size: 0.6vw;
    margin-left: 0.5vw;
    letter-spacing: 0.08vw;
}

.plan__txt18 {
    position: absolute;
    top: 87vw;
    left: 32.75vw;
    font-size: 1.1vw;
    font-weight: 300;
    letter-spacing: 0.04vw;
}

.plan__txt19 {
    position: absolute;
    top: 94.35vw;
    left: 0;
    width: 100%;
    font-size: 1.5vw;
    line-height: 3vw;
    text-align: center;
    color: #fff;
    font-weight: 500;
}

.plan__txt20 {
    position: absolute;
    top: 100.4vw;
    left: 45.1vw;
    font-size: 2.2vw;
    line-height: 2.2vw;
    font-weight: 300;
    letter-spacing: 0.24vw;
}

.plan__txt20__span1 {
    display: inline-block;
    font-size: 0.6vw;
    margin-left: 0.5vw;
    letter-spacing: 0.08vw;
}

.plan__txt21 {
    position: absolute;
    top: 126.25vw;
    left: 43.2vw;
    font-size: 1.33vw;
    letter-spacing: 0.13vw;
}

.plan__txt22 {
    position: absolute;
    top: 128.55vw;
    left: 35.55vw;
    font-size: 1.68vw;
    line-height: 2.38vw;
    text-align: center;
    font-weight: 500;
    letter-spacing: 0.18vw;
    color: #f1446e;
}

.plan__txt23 {
    position: absolute;
    top: 134.9vw;
    left: 56.15vw;
    font-size: 0.8vw;
    font-weight: 300;
    color: #fff;
}

@media screen and (max-width: 750px) {
    .plan__txt1 {
        top: 6.67vw;
        font-size: 5.33vw;
        line-height: 9.33vw;
        letter-spacing: 0.21vw;
    }

    .plan__txt2 {
        top: 41.73vw;
        left: 24.4vw;
        width: auto;
        font-size: 4.8vw;
        line-height: 8vw;
        font-weight: 400;
        letter-spacing: 0.09vw;
    }

    .plan__txt2>span {
        font-size: 4vw;
        margin-left: 1.87vw;
    }

    .plan__txt3 {
        display: none;
    }

    .plan__txt4 {
        top: 70.13vw;
        left: 7.87vw;
        width: 88vw;
        font-size: 3.87vw;
        line-height: 6.67vw;
        font-weight: 300;
        letter-spacing: 0.34vw;
    }

    .plan__txt5 {
        top: 94.93vw;
        left: 46.8vw;
        font-size: 6.67vw;
        line-height: 5.87vw;
        font-weight: 300;
        letter-spacing: 0.94vw;
    }

    .plan__txt5__span1 {
        font-size: 2vw;
        margin-left: 0px;
        letter-spacing: 0.21vw;
    }

    .plan__txt5__span2 {
        display: block;
        font-size: 2.4vw;
        line-height: 2.4vw;
        margin-left: 0;
        letter-spacing: 0.38vw;
        text-align: right;
    }

    .plan__txt6 {
        top: 109.2vw;
        left: 46.8vw;
        font-size: 6.67vw;
        line-height: 5.87vw;
        font-weight: 300;
        letter-spacing: 0.94vw;
    }

    .plan__txt6__span1 {
        font-size: 2vw;
        margin-left: 0px;
        letter-spacing: 0.21vw;
    }

    .plan__txt6__span2 {
        display: block;
        font-size: 2.4vw;
        line-height: 2.4vw;
        margin-left: 0;
        letter-spacing: 0.38vw;
        text-align: right;
    }

    .plan__txt7 {
        top: 124vw;
        left: 46.8vw;
        font-size: 6.67vw;
        line-height: 5.87vw;
        font-weight: 300;
        letter-spacing: 0.94vw;
    }

    .plan__txt7__span1 {
        font-size: 2vw;
        margin-left: 0px;
        letter-spacing: 0.21vw;
    }

    .plan__txt7__span2 {
        display: block;
        font-size: 2.4vw;
        line-height: 2.4vw;
        margin-left: 0;
        letter-spacing: 0.38vw;
        text-align: right;
    }

    .plan__txt8 {
        top: 152.27vw;
        left: 24.93vw;
        width: auto;
        font-size: 4.8vw;
        line-height: 8vw;
        font-weight: 400;
        letter-spacing: 0.09vw;
    }

    .plan__txt8>span {
        font-size: 4vw;
        margin-left: 1.87vw;
    }

    .plan__txt9 {
        top: 162.27vw;
        left: 7.07vw;
        font-size: 4.27vw;
        line-height: 7.47vw;
        font-weight: 400;
        letter-spacing: 0.43vw;
    }

    .plan__txt10 {
        top: 174.27vw;
        left: 7.87vw;
        width: 88vw;
        font-size: 3.87vw;
        line-height: 6.67vw;
        font-weight: 300;
        letter-spacing: 0.34vw;
    }

    .plan__txt11 {
        top: 193.07vw;
        left: 46.8vw;
        font-size: 6.67vw;
        line-height: 5.87vw;
        font-weight: 300;
        letter-spacing: 0.85vw;
    }

    .plan__txt12 {
        top: 204.53vw;
        left: 46.8vw;
        font-size: 6.67vw;
        line-height: 5.87vw;
        font-weight: 300;
        letter-spacing: 0.85vw;
    }

    .plan__txt13 {
        top: 218vw;
        left: 15.6vw;
        font-size: 3.47vw;
        font-weight: 300;
        letter-spacing: 0.19vw;
    }

    .plan__txt14 {
        top: 240.53vw;
        left: 24.93vw;
        width: auto;
        font-size: 4.8vw;
        line-height: 8vw;
        font-weight: 400;
        letter-spacing: 0.09vw;
    }

    .plan__txt14>span {
        font-size: 4vw;
        margin-left: 1.87vw;
    }

    .plan__txt15 {
        top: 250.93vw;
        left: 7.07vw;
        font-size: 4.27vw;
        line-height: 7.47vw;
        font-weight: 400;
        letter-spacing: 0.43vw;
    }

    .plan__txt16 {
        top: 260vw;
        left: 7.87vw;
        width: 88vw;
        font-size: 3.87vw;
        line-height: 6.67vw;
        font-weight: 300;
        letter-spacing: 0.34vw;
    }

    .plan__txt17 {
        top: 285.47vw;
        left: 46.8vw;
        font-size: 6.67vw;
        line-height: 5.87vw;
        font-weight: 300;
        letter-spacing: 0.85vw;
    }

    .plan__txt18 {
        top: 294.93vw;
        left: 15.6vw;
        font-size: 3.47vw;
        font-weight: 300;
        letter-spacing: 0.19vw;
    }

    .plan__txt19 {
        top: 317.87vw;
        left: 24.93vw;
        width: auto;
        font-size: 4.8vw;
        line-height: 8vw;
        font-weight: 400;
        letter-spacing: 0.09vw;
    }

    .plan__txt20 {
        top: 332.53vw;
        left: 46.8vw;
        font-size: 6.67vw;
        line-height: 5.87vw;
        font-weight: 300;
        letter-spacing: 0.85vw;
    }

    .plan__txt21 {
        top: 404.4vw;
        left: 31.07vw;
        font-size: 4vw;
        letter-spacing: 0.34vw;
    }

    .plan__txt22 {
        top: 411.47vw;
        left: 8.13vw;
        font-size: 5.07vw;
        line-height: 7.17vw;
        letter-spacing: 0.51vw;
    }

    .plan__txt23 {
        top: 430.13vw;
        left: 70vw;
        font-size: 2.4vw;
    }
}


/* Reason Section */
.reason {
    position: relative;
}

.reason__txt__box1 {
    position: absolute;
    top: 19.55vw;
    left: 35.15vw;
    display: flex;
}

.reason__txt__box2 {
    position: absolute;
    top: 26.45vw;
    left: 35.15vw;
    display: flex;
}

.reason__txt__box3 {
    position: absolute;
    top: 33.35vw;
    left: 35.15vw;
    display: flex;
}

.reason__txt__box4 {
    position: absolute;
    top: 40.2vw;
    left: 35.15vw;
    display: flex;
}

.reason__txt__box5 {
    position: absolute;
    top: 47.1vw;
    left: 35.15vw;
    display: flex;
}

.reason__txt0 {
    position: absolute;
    top: min(3.9vw, 77px);
    left: 50%;
    width: 100%;
    font-size: min(2vw, 40px);
    line-height: min(3vw, 60px);
    letter-spacing: 0.1rem;
    text-align: center;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -moz-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    -o-transform: translateX(-50%);
}

.reason__txt0 span {
    letter-spacing: -1rem;
}

.reason__txt1 {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 17.4vw;
    height: 6.6vw;
    font-size: 0.9vw;
    line-height: 1.45vw;
    text-align: center;
    margin-right: 0.35vw;
}

.reason__txt2 {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 10.85vw;
    height: 6.6vw;
    font-size: 0.75vw;
    line-height: 1.25vw;
    font-weight: 300;
    text-align: center;
    margin-right: 0.4vw;
}

.reason__txt3 {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 10.85vw;
    height: 6.6vw;
    font-size: 0.75vw;
    line-height: 1.25vw;
    font-weight: 300;
    text-align: center;
}

.marker {
    background: linear-gradient(transparent 60%, #fff66a 60%);
}

.reason__txt4 {
    position: absolute;
    bottom: 12.2vw;
    left: 25.7vw;
    font-size: 2vw;
    line-height: 3.5vw;
    letter-spacing: 0.2vw;
    color: #fff;
}

.reason__txt5 {
    position: absolute;
    bottom: 6.25vw;
    left: 27.55vw;
    font-size: 1.5vw;
    line-height: 2.25vw;
}

@media screen and (max-width: 750px) {
    .reason__txt__box1 {
        top: 50.13vw;
        left: 13.47vw;
    }

    .reason__txt__box2 {
        top: 78.8vw;
        left: 13.47vw;
    }

    .reason__txt__box3 {
        top: 107.47vw;
        left: 13.47vw;
    }

    .reason__txt__box4 {
        top: 135.87vw;
        left: 13.47vw;
    }

    .reason__txt__box5 {
        top: 164.53vw;
        left: 13.47vw;
    }

    .reason__txt0 {
        top: min(9.34vw, 70px);
        font-size: min(5.87vw, 44px);
        line-height: min(8.8vw, 66px);
    }

    .reason__txt1 {
        width: 36.13vw;
        height: 27.47vw;
        font-size: 2.67vw;
        line-height: 4.13vw;
        margin-right: 0.8vw;
    }

    .reason__txt2 {
        width: 22.93vw;
        height: 27.47vw;
        font-size: 2.13vw;
        line-height: 3.73vw;
        margin-right: 0.93vw;
    }

    .reason__txt3 {
        width: 25.93vw;
        height: 27.47vw;
        font-size: 2.13vw;
        line-height: 3.73vw;
        margin-left: -1.3vw;
    }

    .reason__txt3>span {
        display: none;
    }

    .reason__txt4 {
        bottom: 33.07vw;
        left: -2.93vw;
        font-size: 6.67vw;
        line-height: 9.07vw;
        letter-spacing: 0.67vw;
    }

    .reason__txt5 {
        bottom: 19.2vw;
        left: 5.07vw;
        font-size: 4vw;
        line-height: 6vw;
    }
}


/* FAQ Section */
.faq {
    width: 100%;
    height: auto;
    background-color: #fff;
    padding: 6vw;
}

.faq__title {
    font-size: 2vw;
    font-weight: 400;
    text-align: center;
    margin-bottom: 4vw;
}

.faq__item {
    /* width: 42.5vw; */
    width: 46.5vw;
    margin: 0 auto;
}

.faq__item:nth-child(n+2) {
    margin-top: 2.1vw;
}

.question {
    position: relative;
    margin-bottom: 1.3vw;
}

.question_txt {
    position: absolute;
    top: 50%;
    left: 6.5vw;
    /* font-size: 1.1vw; */
    font-size: 1.3vw;
    color: #fff;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -o-transform: translateY(-50%);
}

.answer {
    /* font-size: 0.9vw; */
    font-size: 1vw;
    line-height: 1.8vw;
    font-weight: 300;
    color: #000;
    padding-left: 1.75vw;
}

@media screen and (max-width: 750px) {
    .faq {
        padding: 9.6vw 0 20vw;
    }

    .faq__title {
        font-size: 6.67vw;
        margin-bottom: 9.07vw;
    }

    .faq__item {
        width: 92vw;
        margin: 0 auto;
    }

    .faq__item:nth-child(n+2) {
        margin-top: 7.07vw;
    }

    .question {
        margin-bottom: 4vw;
    }

    .question_txt {
        left: 13.33vw;
        font-size: 4.53vw;
    }

    .answer {
        font-size: 4vw;
        line-height: 150%;
        padding-left: 6.67vw;
        letter-spacing: -0.13vw;
    }

    .answer_sp {
        display: none;
    }
}

/* meaning */
.meaning {
    position: relative;
}

.meaning__txt1 {
    position: absolute;
    top: 3.35vw;
    left: 0;
    width: 100%;
    font-size: 2vw;
    letter-spacing: 0.16vw;
    color: #fff;
    text-align: center;
}

.meaning__txt2 {
    position: absolute;
    top: 7.5vw;
    left: 0;
    width: 100%;
    font-size: 1.2vw;
    color: #fff;
    text-align: center;
}

.meaning__txt3 {
    position: absolute;
    top: 24.6vw;
    left: 28vw;
    font-size: 1.1vw;
    line-height: 1.65vw;
    text-align: center;
}

.meaning__txt4 {
    position: absolute;
    top: 24.6vw;
    left: 45.95vw;
    font-size: 1.1vw;
    line-height: 1.65vw;
    text-align: center;
}

.meaning__txt5 {
    position: absolute;
    top: 24.6vw;
    left: 61.75vw;
    font-size: 1.1vw;
    line-height: 1.65vw;
    text-align: center;
}

.meaning__txt6 {
    position: absolute;
    bottom: 3.65vw;
    left: 0;
    width: 100%;
    font-size: 1.6vw;
    line-height: 2.4vw;
    letter-spacing: 0.16vw;
    text-align: center;
    color: #fff;
}

@media screen and (max-width: 750px) {
    .meaning__txt1 {
        top: 6.67vw;
        font-size: 5.87vw;
        letter-spacing: 0.43vw;
    }

    .meaning__txt2 {
        top: 20vw;
        font-size: 4vw;
    }

    .meaning__txt3 {
        top: 102.13vw;
        left: 0px;
        width: 100%;
        font-size: 6.13vw;
        line-height: 9.33vw;
    }

    .meaning__txt4 {
        top: 200.27vw;
        left: 0px;
        width: 100%;
        font-size: 6.13vw;
        line-height: 9.33vw;
    }

    .meaning__txt5 {
        top: 298vw;
        left: 0px;
        width: 100%;
        font-size: 6.13vw;
        line-height: 9.33vw;
    }

    .meaning__txt6 {
        bottom: 9.73vw;
        font-size: 4.53vw;
        line-height: 6.4vw;
        letter-spacing: 0.43vw;
    }
}


/* Store Section */
.store {
    width: 100%;
    background-color: #fff;
    padding: 7.5vw 1vw;
}

.store__container {
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
}

.store__title {
    font-size: 40px;
    line-height: 100%;
    letter-spacing: 0.1rem;
    font-weight: 700;
    text-align: center;
    margin-bottom: 23px;
}

.store__logo {
    width: 353px;
    text-align: center;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 32px;
}

.store__logo-icon {
    display: inline-block;
    width: 35px;
    height: 35px;
    background-color: #3d4d7a;
    color: #fff;
    border-radius: 50%;
    line-height: 35px;
    text-align: center;
    font-weight: 700;
    margin-right: 10px;
}

.store__locations {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
}

.store__location {
    display: flex;
    flex-direction: column;
}

.store__map {
    width: 100%;
    margin-bottom: 54px;
    aspect-ratio: 16 / 9;
}

.store__map img {
    width: 100%;
    height: auto;
    border-radius: 5px;
}

.store__info {
    text-align: left;
}

.store__name {
    font-size: 22px;
    font-weight: 400;
}

.store__address {
    font-size: 22px;
}

.store__hours {
    text-align: center;
    font-size: 1rem;
    font-weight: 700;
    margin-bottom: 15px;
    color: #333;
}

.store__note {
    text-align: center;
    font-size: 0.9rem;
    color: #666;
}

/* Responsive Styles (SP) for Store */
@media screen and (max-width: 750px) {
    .store {
        padding: 60px 0px;
    }

    .store__title {
        font-size: min(5.34vw, 40px);
        margin-bottom: min(3.2vw, 24px);
    }

    .store__logo {
        width: min(47.07vw, 353px);
        margin-bottom: min(6.27vw, 47px);
        margin-left: auto;
        margin-right: auto;
    }

    .store__locations {
        grid-template-columns: 1fr;
        gap: 56px;
        width: 100%;
        padding-left: min(10.67vw, 80px);
        padding-right: min(10.67vw, 80px);
        margin: 0 auto;
    }

    .store__map {
        aspect-ratio: 16 / 9;
        margin-bottom: min(5.74vw, 43px);
    }

    .store__name {
        font-size: min(4vw, 30px);
    }

    .store__address {
        font-size: min(4vw, 30px);
    }

    .store__address span {
        display: none;
    }
}


/* Flow */
.flow {
    position: relative;
}

.flow__txt0 {
    position: absolute;
    top: min(4vw, 80px);
    left: 50%;
    width: 100%;
    font-size: min(2vw, 40px);
    letter-spacing: 0.1rem;
    text-align: center;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -moz-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    -o-transform: translateX(-50%);
}

.flow__txt1 {
    position: absolute;
    bottom: min(20.3vw, 405px);
    left: min(24vw, 480px);
    font-size: min(2vw, 40px);
    letter-spacing: 0.25rem;
    color: #fff;
}

.flow__txt2 {
    position: absolute;
    bottom: min(7.5vw, 150px);
    left: min(25vw, 500px);
    font-size: min(1.6vw, 32px);
    line-height: min(3.2vw, 64px);
    letter-spacing: 0.15rem;
    color: #fff;
}

@media screen and (max-width: 750px) {
    .flow__txt0 {
        top: min(10.67vw, 80px);
        font-size: min(5.34vw, 40px);
    }

    .flow__txt1 {
        bottom: min(61.6vw, 462px);
        left: max(-8vw, -60px);
        font-size: min(5.34vw, 40px);
        letter-spacing: 0.1rem;
        line-height: min(9.34vw, 70px);
    }

    .flow__txt2 {
        bottom: min(8vw, 60px);
        left: min(5.34vw, 40px);
        font-size: min(4.54vw, 34px);
        line-height: min(8.54vw, 64px);
        letter-spacing: 0.15rem;
    }
}

/* Footer */
.footer {
    width: 100%;
    background-color: #000;
    padding: 3vw 1vw;
}

.footer__container {
    width: 100%;
    max-width: 50vw;
    margin: 0 auto;
}

.footer__nav {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 2vw;
}

.footer__link {
    color: #fff;
    font-size: 1.2vw;
    font-weight: 400;
    text-decoration: none;
    transition: opacity 0.3s;
}

.footer__link:hover {
    opacity: 0.7;
}

/* Responsive Styles (SP) for Footer */
@media screen and (max-width: 750px) {
    .footer {
        padding: min(8vw, 60px) min(2.67vw, 20px);
    }

    .footer__nav {
        flex-direction: column;
        gap: min(2.67vw, 20px);
    }

    .footer__link {
        font-size: min(2.94vw, 22px);
    }
}