/* Base */
:root {
    --phy-primary-color: #ed1c24;
    --fs-base: .9375rem; /* 15px */
    --fs-xl: 1.75rem; /* 28px */
    --fs-l: 1.5rem; /* 24px */
    --fs-m: 1.25rem; /* 20px */
    --fs-s: 1rem; /* 16px */
    --fs-xs: .875rem; /* 14px */
    --vrt-secondary-color: #F7D55B;
    --bg-color: #F4F4FA;
    --border-color: #DDDDE7;
    --base-color: #1d1d1d;
    --headline-color: #1d1d1d;
    --gray-scale-color: #5c5c5c;
    --lp-font-size-headline: 2.25rem;
    --lp-font-size-xl: 2rem;
    --lp-font-size-l: 1.4rem;
    --lp-font-size-base: 1.1rem;
    --lp-font-size-s: .95rem;
    --lp-font-size-xs: .9rem;
    --lp-font-size-xxs: .8rem;
}

.layout_main {
    font-family: 'ヒラギノ角ゴ ProN', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', YuGothic, Verdana, Helvetica, 'ＭＳ Ｐゴシック', 'メイリオ', Meiryo, sans-serif;
    font-size: var(--fs-base);
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: antialiased;
    text-size-adjust: 100%;

    * {
        box-sizing: border-box;
    }
}

.inner {
    max-width: 1264px;
    margin: 0 auto;
    line-height: 1.5;

    @media screen and (max-width: 768px) {
        padding: 0 20px 3rem !important;
    }
}

section.campaign__detail,
section.campaign__resons,
section.campaign__lineup {
    .inner {
        padding: 6.25rem min(5.208333333%, 50px) 3.25rem;

        @media screen and (max-width: 1180px) {
            padding: 6.25rem min(5.208333333%, 30px) 3.25rem;
        }
    }
}

.only-pc {
    display: none;

    @media screen and (min-width: 768px) {
        display: block;
    }
}

.only-sp {
    display: block;

    @media screen and (min-width: 768px) {
        display: none;
    }
}


section.campaign__hero {
    background: url('../images/bg-mv.png') no-repeat center top;
    background-size: cover;
    padding: 102px 0 84px;
    text-align: center;
    color: #fff;

    @media screen and (max-width: 768px) {
        padding: 4.75rem 0 1.75rem;
        background-position: center top;
    }

    h1.hero__title {
        font-size: 3.1rem;
        font-weight: bold;
        margin-bottom: 2.5rem;
        position: relative;

        @media screen and (max-width: 768px) {
            font-size: 2rem;
            line-height: 1.4;
            margin-bottom: 2.5rem;
            letter-spacing: -0.025rem;
        }

        span {
            position: relative;
        }

        &::before {
            content: '';
            position: absolute;
            top: 53px;
            width: 410px;
            height: 10px;
            background-color: #DA3832;
            transform: skewX(20deg);
            z-index: 0;

            @media screen and (max-width: 768px) {
                width: 16.5rem;
                height: 8px;
                top: 30px;
            }
        }
    }

    .hero__cta-wrapper {
        position: relative;
        display: inline-block;

        @media screen and (max-width: 768px) {
            width: 100%;
        }

        a.hero__cta {
            display: flex;
            align-items: center;
            justify-content: center;
            width: 460px;
            height: 79px;
            padding: 0.75rem 2rem;
            font-size: var(--lp-font-size-xl);
            font-weight: bold;
            color: #fff;
            text-decoration: none;
            border-radius: 8px;
            background-image: linear-gradient(180deg, rgba(238, 81, 75, 1), rgba(218, 56, 50, 1));
            box-shadow: 0 2px 3px rgba(0, 0, 0, 0.25);
            position: relative;
            z-index: 10;

            @media screen and (max-width: 768px) {
                width: 90%;
                height: 68px;
                margin: 0 auto;
                padding: 0.75rem 1rem;
                font-size: 1.45rem;
            }

            @media screen and (max-width: 370px) {
                font-size: 1.35rem;
            }

            &:hover {
                background-image: linear-gradient(180deg, rgba(255, 124, 119, 1), rgba(255, 124, 119, 1));
            }

            .hero__label {
                position: absolute;
                top: -15px;
                left: -36px;
                background-color: #fff;
                color: var(--phy-primary-color);
                font-size: 1.2rem;
                font-weight: bold;
                border-radius: 50%;
                padding: 0.75rem 1rem;
                line-height: 1.2;
                white-space: nowrap;
                box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
                z-index: 20;

                @media screen and (max-width: 768px) {
                    top: -26px;
                    left: -30px;
                    font-size: 1.1rem;
                    padding: 0.64rem 0.86rem;
                }
            }
        }
    }
}


section.campaign__detail {
    background-color: var(--bg-color);
    color: var(--base-color);

    h2.campaign__section-title {
        font-size: var(--lp-font-size-xl);
        font-weight: bold;
        margin-bottom: 4rem;
        text-align: center;

        @media screen and (max-width: 768px) {
            font-size: 1.5rem;
            margin-bottom: 2rem;
            padding-top: 3rem;
        }
    }

    div.campaign__table {
        @media screen and (max-width: 768px) {
            .scroll-hint-wrapper {
                position: relative;
            }

            .js-scrollable {
                overflow-x: auto;
                -webkit-overflow-scrolling: touch;
                white-space: nowrap;
            }

            .campaign__table table {
                width: 700px;
            }

            .scroll-hint-icon {
                display: block !important;
            }
        }

        @media screen and (min-width: 768px) {
            .scroll-hint-icon {
                display: none !important;
            }
        }

        table {
            width: 100%;
            border-collapse: collapse;
            text-align: center;

            th {
                font-size: var(--lp-font-size-base);
                background-color: #5F5F64;
                color: #fff;
                font-weight: bold;
                padding: 0.75rem;
                border: 1px solid var(--border-color);
            }

            td {
                font-size: var(--lp-font-size-s);
                border: 1px solid var(--border-color);
                padding: 0.75rem;
                vertical-align: middle;

                span {
                    color: #DA3832;
                    font-weight: bold;
                }
            }

            tr:nth-child(even) td {
                background: #fff;
            }
        }
    }

    div.campaign__period {
        margin-top: 1rem;
        color: #636363;
        font-size: var(--lp-font-size-xxs);
        line-height: 1.7;
    }

    div.campaign__summary {
        background-color: var(--bg-color);
        padding-top: 3rem;
        color: var(--base-color);

        @media screen and (max-width: 768px) {
            padding-top: 2rem;
        }

        .campaign__summary-table {
            width: 100%;
            border-collapse: collapse;

            @media screen and (max-width: 768px) {
                font-size: 0.9rem;

                .table__cta {
                    display: flex;
                    margin: 1rem 0 0.5rem;

                    .campaign__cta {
                        display: flex;
                        align-items: center;
                        width: auto;
                        height: 53px;
                        box-shadow: 0px 2px 3px 0px rgba(0, 0, 0, 0.25);
                        background-image: linear-gradient(180deg, rgba(238,81,75,1), rgba(218,56,50,1));
                        color: #fff;
                        font-weight: bold;
                        padding: 0.75rem 2rem;
                        border-radius: 8px;
                        font-size: 1.05rem;
                        text-decoration: none;
                        z-index: 10;
                    }
                }
            }

            th {
                background-color: #5F5F64;
                color: #fff;
                text-align: left;
                vertical-align: top;
                padding: 1.35rem;
                width: 280px;
                border: 1px solid var(--border-color);
                font-size: var(--lp-font-size-base);
                font-weight: bold;

                @media screen and (max-width: 768px) {
                    padding: 0.8rem;
                    font-size: 1rem;
                }
            }

            td {
                background-color: #fff;
                padding: 1.35rem;
                border: 1px solid var(--border-color);
                font-size: var(--lp-font-size-s);
                vertical-align: top;

                @media screen and (max-width: 768px) {
                    padding: 0.8rem 1rem 1.2rem;
                }
            }

            th, td {
                @media screen and (max-width: 768px) {
                    display: block;
                    width: 100%;
                    padding: 16px 20px;
                }
            }

            tr:nth-child(1),
            tr:nth-child(2) {
                vertical-align: middle;
            }

            tr:last-child {
                vertical-align: top;
            }

            ul {
                margin: 0;
                padding-left: 1.8em;
                list-style: disc;
            }

            li {
                margin-bottom: 0.5rem;

                span {
                    vertical-align: -0.1rem;
                }

                &::marker {
                    font-size: 0.5rem;
                }
            }
        }
    }

    .campaign__cta-wrapper {
        display: flex;
        justify-content: center;
        text-align: center;
        margin: 4rem 0 2rem;
        @media screen and (max-width: 768px) {
          margin-top: 3rem;
        }
        .campaign__cta {
            display: flex;
            align-items: center;
            justify-content: center;
            width: 384px;
            height: 68px;
            box-shadow: 0px 2px 3px 0px rgba(0, 0, 0, 0.25);
            background-image: linear-gradient(180deg, rgba(238,81,75,1), rgba(218,56,50,1));
            color: #fff;
            font-weight: bold;
            padding: 0.75rem 2rem;
            border-radius: 8px;
            font-size: 1.5rem;
            text-decoration: none;
            z-index: 10;

            @media screen and (min-width: 769px) {
              &:hover {
                  background-image: linear-gradient(180deg, rgba(255,124,119,1), rgba(255,124,119,1));
              }
            }

            @media screen and (max-width: 768px) {
              width: auto;
              height: 53px;
              font-size: 1.05rem;
            }
        }
    }
}


section.campaign__reasons {
    background: linear-gradient(to bottom, rgba(0,0,0,0), var(--base-color)), url('../images/reason-bg.png') no-repeat center top;
    background-color: var(--base-color);
    color: #fff;
    padding: 4rem 0 0;
    position: relative;
    overflow: hidden;

    @media screen and (max-width: 768px) {
        padding: 48px 0 0;
        background-position: center top;
    }

    h2.campaign__reasons-title {
        font-size: var(--lp-font-size-xl);
        font-weight: bold;
        text-align: center;
        margin-bottom: 4rem;
        line-height: 1.5;

        @media screen and (max-width: 768px) {
            font-size: 1.5rem;
            margin-bottom: 2rem;
        }
    }

    div.campaign__reason-wrapper {
        padding: 0 8.5rem;

        @media screen and (max-width: 960px) {
            padding: 0 2.5rem;
        }

        @media screen and (max-width: 767px) {
            padding: 0;
        }

        div.reason-block {
            display: flex;
            gap: 32px;

            @media screen and (max-width: 768px) {
                display: block;
            }

            &:nth-of-type(1),
            &:nth-of-type(2) {
                margin-bottom: 3rem;
            }

            img {
                width: 270px;

                @media screen and (max-width: 768px) {
                    width: 100%;
                    margin: 0 auto 1.5rem;
                }
            }

            .content {
                display: flex;
                flex-direction: column;
                justify-content: center;

                h3 {
                    font-size: var(--lp-font-size-l);
                    font-weight: bold;
                    margin-bottom: 0.75rem;

                    @media screen and (max-width: 768px) {
                        font-size: 1.2rem;
                        margin-bottom: 0.6rem;
                    }
                }

                p {
                    font-size: 1rem;
                    line-height: 1.8;

                    @media screen and (max-width: 768px) {
                        font-size: 0.95rem;
                        line-height: 1.7;
                    }
                }
            }
        }
    }
}


section.campaign__lineup {
    background-color: var(--base-color);

    div.inner {
        @media screen and (max-width: 768px) {
            padding: 0 10px;
        }

        h2.lineup-title {
            color: #fff;
            margin-bottom: 4rem;
            box-sizing: border-box;
            text-align: center;
            font-size: var(--lp-font-size-xl);
            font-variation-settings: "wght" 400;
            letter-spacing: 0.08rem;

            @media screen and (max-width: 768px) {
                font-size: 1.5rem;
                margin-bottom: 2.5rem;
            }
        }

        ul.service-list {
            display: flex;
            justify-content: space-between;
            margin-bottom: 5rem;
            box-sizing: border-box;
            font-size: var(--lp-font-size-xxs);
            z-index: 10;

            @media (max-width: 960px) {
                flex-wrap: wrap;
            }

            @media (max-width: 768px) {
                margin-top: 32px;
                margin-bottom: 0.5rem;
            }

            li {
                width: calc((100% - 64px) / 4);
                background: linear-gradient(to bottom, #fff, #CFD4DB);
                border-radius: 8px;
                z-index: 60;
                transition: border-radius 0.4s;

                &:hover {
                    border-radius: 32px;
                }

                @media (max-width: 904px) {
                    width: 100%;
                    margin-top: 32px;

                    &:nth-child(1) {
                        margin-top: 0;
                    }
                }

                @media (max-width: 768px) {
                    margin-top: 24px;

                    &:hover {
                        border-radius: 8px;
                    }
                }

                a {
                    position: relative;
                    display: block;
                    height: 100%;
                    padding: 28px 32px 28px;
                    color: var(--color-black);
                    text-align: center;

                    &::before,
                    &::after {
                        position: absolute;
                        content: "";
                        width: 35px;
                        height: 35px;
                        right: 32px;
                        bottom: 32px;
                        border-radius: 100%;
                        transition: 0.4s;
                    }

                    &::before {
                        background: url("../images/arrow.svg") no-repeat 12px 13px / 12px 8px, linear-gradient(to right, #D63D00, #D11013);
                        opacity: 1;
                    }

                    &::after {
                        background: url("../images/arrow.svg") no-repeat 12px 13px / 12px 8px, rgba(17,25,35,0.2);
                        opacity: 0;
                    }

                    &:hover {
                        &::after {
                            opacity: 1;
                        }
                    }

                    @media (max-width: 768px) {
                        padding: 32px 16px 16px;

                        &::before,
                        &::after {
                            right: 16px;
                            bottom: 16px;
                        }

                        &:hover &::after {
                            opacity: 0;
                        }
                    }

                    h3.service-title {
                        width: 200px;
                        height: 52px;
                        margin: 0 auto;
                        text-indent: 100%;
                        overflow: hidden;
                        white-space: nowrap;
                    }

                    p.service-description {
                        margin-top: 32px;
                        padding-bottom: 42px;

                        @media (max-width: 768px) {
                            margin-top: 16px;
                            padding-bottom: 36px;
                        }

                        @media (max-width: 904px) {
                            .only-sp {
                                display: none;
                            }
                        }

                        span {
                            display: inline-block;
                        }
                    }
                }

                &:nth-child(1) a h3.service-title {
                    background: url("../images/one-r.svg") 14px 18px no-repeat;
                    background-size: 86%;
                }

                &:nth-child(2) a h3.service-title {
                    background: url("../images/dok-r.svg") 0 0 no-repeat;
                    background-size: contain;
                }

                &:nth-child(3) a h3.service-title {
                    background: url("../images/vrt-r.svg") 0 0 no-repeat;
                    background-size: contain;
                }

                &:nth-child(4) a h3.service-title {
                    background: url("../images/phy-r.svg") 0 0 no-repeat;
                    background-size: contain;
                }
            }
        }
    }
}


section.campaign__bottom {
    background: url('../images/bg-mv.png') no-repeat center top;
    background-size: cover;
    padding: 5rem 0;
    text-align: center;
    color: #fff;

    @media screen and (max-width: 768px) {
        padding: 72px 0 24px;
    }

    h1.bottom__title {
        font-size: var(--lp-font-size-xl);
        font-weight: bold;
        margin-bottom: 2.5rem;

        @media screen and (max-width: 768px) {
            font-size: 1.6rem;
            margin-bottom: 1.5rem;
        }
    }

    .bottom__cta-wrapper {
        position: relative;
        display: inline-block;

        @media screen and (max-width: 768px) {
            width: 100%;
        }

        a.bottom__cta {
            display: flex;
            align-items: center;
            justify-content: center;
            width: 384px;
            height: 68px;
            padding: 0.75rem 2rem;
            font-size: 1.58rem;
            font-weight: bold;
            color: #fff;
            text-decoration: none;
            border-radius: 8px;
            background-image: linear-gradient(180deg, rgba(238, 81, 75, 1), rgba(218, 56, 50, 1));
            box-shadow: 0px 2px 3px 0px rgba(0, 0, 0, 0.25);
            position: relative;
            z-index: 10;

            @media screen and (max-width: 768px) {
                width: 90%;
                height: 68px;
                margin: 0 auto;
                padding: 0.75rem 1rem;
                font-size: 1.45rem;
            }

            @media screen and (max-width: 370px) {
                font-size: 1.35rem;
            }

            &:hover {
                background-image: linear-gradient(180deg, rgba(255,124,119,1), rgba(255,124,119,1));
            }

            .bottom__label {
                position: absolute;
                top: -18px;
                left: -36px;
                background-color: #fff;
                color: var(--phy-primary-color);
                font-size: 1.2rem;
                font-weight: bold;
                border-radius: 50%;
                padding: 0.7rem 1rem;
                line-height: 1.2;
                white-space: nowrap;
                box-shadow: 0 2px 4px rgba(0,0,0,0.1);
                z-index: 20;

                @media screen and (max-width: 768px) {
                    top: -26px;
                    left: -30px;
                    font-size: 1.1rem;
                    padding: 0.64rem 0.86rem;
                }
            }
        }
    }
}
