@charset "utf-8";

/* Variable */
/* ============================================ */
:root {
    --design-width: 1440;
    --canvas-width: 1600;

    /* Font */
    --font-normal: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", Meiryo, sans-serif;
    --font-cormorant: "Cormorant", serif;
    --font-baskerville: "Baskervville", serif;
    --font-barlow: "Barlow", sans-serif;

    /* Color */
    --c-white: #ffffff;
    --c-black: #3e3a39;
    --c-blue-01: #042251;
    --c-blue-02: #333750;
    --c-blue-03: #595c71;
    --c-blue-05: #588cc2;
    --c-green-02: #00a29a;
    --c-orange-01: #e95532;
    --c-orange-02: #ea5514;
    --c-blue-06: #3071b4;
    --c-blue-10: #007dee;
    --c-blue-07: #324fa3;
    --c-blue-08: #71b7d5;
    --c-blue-09: #a4cae5;
    --c-blue-16: #bfdaed;
    --c-green-03: #f0ffe4;
    --c-green-04: #e9fae4;
    --c-yellow-01: #ffe190;
    --c-blue-11: #5597ff;
    --c-yellow-02: #e8b456;
    --c-green-08: #90c53b;
    --c-blue-12: #006cb6;
    --c-blue-13: #00a8db;
    --c-blue-15: #d9e9f4;
    --c-blue-17: #cbeaf6;
    --c-green-05: #33b5ae;
    --c-green-06: #d9f1f0;
    --c-orange-05: #f88930;
    --c-orange-06: #feede0;
    --c-yellow-03: #e0b200;
    --c-yellow-04: #faf3d9;
    --c-yellow-05: #fff291;
    --c-blue-14: #e7f1f8;
    --c-pink-01: #fce9e4;
    --c-grey-04: #586468;
    --c-green-09: #f9fff5;
    --c-grey-01: #999ba7;
    --c-grey-03: #898989;

    --grad-deco-01: var(--c-yellow-01) 15.77%, var(--c-blue-09) 92.3%;
    --grad-deco-02: var(--c-orange-01) 15.77%, var(--c-blue-09) 92.3%;
    --grad-deco-03: var(--c-blue-09) 3.84%, var(--c-green-03) 95.68%;
    --grad-deco-01-sp: var(--c-yellow-01) -10%, var(--c-blue-09) 42%;

    --fade-duration: 1.2s;
    --fade-shift: 30px;
    --fade-step: 0.3s;
    --fade-step-slow: 0.6s;
}
@media screen and (max-width: 899px) {
    :root {
        --design-width: 375;
        --canvas-width: 375;
    }
}



/* Base */
/* ============================================ */
html {
    height: 100%;
    font-size: 62.5%;
    scroll-behavior: smooth;
    scroll-padding-top: min(104 / var(--design-width) * 100vw, 104px);
}
@media screen and (max-width: 899px) {
    html {
        scroll-padding-top: min(75 / var(--design-width) * 100vw, 75px);
    }
}

body, input, select, textarea {
    font-family: var(--font-normal);
    line-height: 2;
    font-size: clamp(13px, 16 / var(--design-width) * 100vw, 16px);
    width: 100%;
    color: var(--c-black);
    background-color: var(--c-white);
}
@media screen and (max-width: 899px) {
    body, input, select, textarea {
        font-size: clamp(13px, 14 / var(--design-width) * 100vw, 14px);
    }
}

.body-wrap {
    overflow-x: clip;

    &.--v-under {
        padding-top: min(104 / var(--design-width) * 100vw, 104px);
    }
}
@media screen and (max-width: 899px) {
    .body-wrap {

        &.--v-under {
            padding-top: min(75 / var(--design-width) * 100vw, 75px);
        }
    }
}

a {
    color: var(--c-black);
    opacity: 1;
    transition: opacity 0.3s ease;

    .--v-scale-01 {
        transform: scale(1.0);
        transition: transform 0.3s ease;
    }

    &:hover {
        color: var(--c-black);
        opacity: 0.5;

        .--v-scale-01 {
            transform: scale(1.1);
        }
    }
}

img {
    vertical-align: bottom;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
    outline: 2px solid var(--c-orange-01);
    outline-offset: 2px;
    border-radius: 2px;
}
:focus:not(:focus-visible) {
    outline: none;
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

.only-sp {
    display: none !important;
}
@media screen and (max-width: 480px) {
    .only-pc {
        display: none !important;
    }

    .only-sp {
        display: block !important;
    }
}



/* Layout */
/* ============================================ */
.l-wrap-large {
    width: min(1200 / var(--design-width) * 100vw, 1200px);
    margin: 0 auto;
}
@media screen and (max-width: 899px) {
    .l-wrap-large {
        width: min(325 / var(--design-width) * 100vw, 325px);
        width: 100%;
        padding: 0 min(20 / var(--design-width) * 100vw, 20px);
    }
}

.l-wrap-small {
    width: min(860 / var(--design-width) * 100vw, 860px);
    margin: 0 auto;
}
@media screen and (max-width: 899px) {
    .l-wrap-small {
        width: min(325 / var(--design-width) * 100vw, 325px);
        width: 100%;
        padding: 0 min(20 / var(--design-width) * 100vw, 20px);
    }
}

.l-wrap {
    width: min(1100 / var(--design-width) * 100vw, 1100px);
    margin: 0 auto;
}
@media screen and (max-width: 899px) {
    .l-wrap {
        width: min(325 / var(--design-width) * 100vw, 325px);
        width: 100%;
        padding: 0 min(20 / var(--design-width) * 100vw, 20px);
    }
}

.l-wrap-01 {
    width: min(1000 / var(--design-width) * 100vw, 1000px);
    margin: 0 auto;
}
@media screen and (max-width: 899px) {
    .l-wrap-01 {
        width: min(325 / var(--design-width) * 100vw, 325px);
        width: 100%;
        padding: 0 min(20 / var(--design-width) * 100vw, 20px);
    }
}

.l-main {
    display: block;
}



/* Component */
/* ============================================ */
.c-heading-01 {

    .e-sub-01 {
        font-family: var(--font-cormorant);
        font-size: clamp(13px, 20 / var(--design-width) * 100vw, 20px);
        line-height: 1;
        letter-spacing: 0.1em;
        color: var(--c-blue-01);
    }

    .e-main-01 {
        margin-top: min(18 / var(--design-width) * 100vw, 18px);
        font-size: clamp(13px, 44 / var(--design-width) * 100vw, 44px);
        line-height: 1.144;
        letter-spacing: 0.16em;
        font-weight: 500;
        color: var(--c-blue-01);
    }

    &.--v-white {

        .e-sub-01,
        .e-main-01 {
            color: var(--c-white);
        }
    }
}
@media screen and (max-width: 899px) {
    .c-heading-01 {

        .e-sub-01 {
            font-size: clamp(13px, 12 / var(--design-width) * 100vw, 12px);
        }

        .e-main-01 {
            margin-top: min(10 / var(--design-width) * 100vw, 10px);
            font-size: clamp(13px, 30 / var(--design-width) * 100vw, 30px);
        }
    }
}

.c-heading-02 {
    text-align: center;

    .e-main-01 {
        padding-top: min(14 / var(--design-width) * 100vw, 14px);
        font-family: var(--font-cormorant);
        font-size: clamp(13px, 52 / var(--design-width) * 100vw, 52px);
        line-height: 1.213;
        letter-spacing: 0.045em;
        font-weight: 400;
        color: var(--c-white);
    }

    .e-sub-01 {
        font-size: clamp(13px, 16 / var(--design-width) * 100vw, 16px);
        line-height: 2;
        letter-spacing: 0.155em;
        color: var(--c-white);
    }
}
@media screen and (max-width: 899px) {
    .c-heading-02 {

        .e-main-01 {
            padding-top: min(26 / var(--design-width) * 100vw, 26px);
            font-size: clamp(13px, 32 / var(--design-width) * 100vw, 32px);
            line-height: 1.096;
        }

        .e-sub-01 {
            font-size: clamp(13px, 13 / var(--design-width) * 100vw, 13px);
            line-height: 2.462;
        }
    }
}

.e-text-01 {
    font-size: clamp(13px, 16 / var(--design-width) * 100vw, 16px);
    line-height: 2;
    letter-spacing: 0.1em;
    text-align: justify;
}
@media screen and (max-width: 899px) {
    .e-text-01 {
        font-size: clamp(13px, 13 / var(--design-width) * 100vw, 13px);
        line-height: 2.154;
        letter-spacing: 0.075em;
    }
}

.c-button-01 {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;

    &::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: var(--c-blue-01);
        transform: scale(0, 1);
        transition: transform 0.6s cubic-bezier(0.8, 0, 0.2, 1) 0s;
        transform-origin: right top;
        z-index: 0;
    }

    span {
        color: var(--c-blue-01);
        position: relative;
        z-index: 2;
    }

    .s-icon-01 {
        display: flex;
        justify-content: center;
        align-items: center;
        flex-shrink: 0;
    }

    &:hover {
        opacity: 1;

        &::before {
            transform-origin: left top;
            transform: scale(1, 1);
        }

        span {
            color: var(--c-white);
        }
    }

    &.--v-green-01 {

        &::before {
            background-color: var(--c-white);
        }

        span {
            color: var(--c-white);
        }

        .s-icon-01 {
            background-color: rgba(255, 255, 255, 0.17);
        }

        &:hover {

            span {
                color: var(--c-green-02);
            }

            .s-icon-01 {
                background-color: rgba(0, 162, 154, 0.83);
            }
        }
    }
}
@media (hover: none) {

    .c-button-01 {

        &:hover::before {
            transform: scale(0, 1);
        }
    }
}

.c-fade-01 {
    opacity: 0;
    transform: translateY(var(--fade-shift));
    transition: opacity var(--fade-duration) ease, transform var(--fade-duration) ease;

    &.--v-anime {
        opacity: 1;
        transform: translateY(0);
    }

    &.--v-stagger {
        opacity: 1;
        transform: none;
        transition: none;

        > * {
            opacity: 0;
            transform: translateY(var(--fade-shift));
            transition: opacity var(--fade-duration) ease, transform var(--fade-duration) ease;
        }

        > *:nth-child(2) {
            transition-delay: var(--fade-step);
        }

        > *:nth-child(3) {
            transition-delay: calc(var(--fade-step) * 2);
        }

        > *:nth-child(4) {
            transition-delay: calc(var(--fade-step) * 3);
        }

        > *:nth-child(5) {
            transition-delay: calc(var(--fade-step) * 4);
        }

        > *:nth-child(6) {
            transition-delay: calc(var(--fade-step) * 5);
        }

        > *:nth-child(7) {
            transition-delay: calc(var(--fade-step) * 6);
        }

        > *:nth-child(8) {
            transition-delay: calc(var(--fade-step) * 7);
        }

        &.--v-anime > * {
            opacity: 1;
            transform: translateY(0);
        }
    }

    &.--v-stagger-slow {
        --fade-step: var(--fade-step-slow);
    }
}



/* Header */
/* ============================================ */
.p-header {
    padding: 0 min(40 / var(--design-width) * 100vw, 40px);
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 100;
    background-color: var(--c-white);
}
@media screen and (max-width: 899px) {
    .p-header {
        padding: 0 min(19 / var(--design-width) * 100vw, 19px) 0 min(15 / var(--design-width) * 100vw, 15px);
    }
}

.p-header__inner {
    height: min(104 / var(--design-width) * 100vw, 104px);
    display: flex;
    justify-content: space-between;
    align-items: center;

    .e-logo-01 {

        a {
            display: flex;
            align-items: center;
            gap: 0 min(36 / var(--design-width) * 100vw, 36px);

            .m-logo-01 {
                width: min(178 / var(--design-width) * 100vw, 178px);
                height: auto;
            }

            .m-text-01 {
                font-size: clamp(13px, 14 / var(--design-width) * 100vw, 14px);
                line-height: 1.27;
                margin-top: min(16 / var(--design-width) * 100vw, 16px);
                color: var(--c-black);
            }
        }
    }

    .e-navi-01 {
        display: flex;
        justify-content: flex-end;
        align-items: center;
        gap: 0 min(32 / var(--design-width) * 100vw, 32px);

        .m-navi-01 {
            display: flex;
            justify-content: flex-end;
            align-items: center;
            gap: 0 min(32 / var(--design-width) * 100vw, 32px);

            > li {

                > a,
                > span {
                    font-family: var(--font-normal);
                    font-size: clamp(13px, 18 / var(--design-width) * 100vw, 18px);
                    letter-spacing: 0.1em;
                    color: var(--c-black);
                    display: flex;
                    justify-content: center;
                    align-items: center;
                    height: min(104 / var(--design-width) * 100vw, 104px);
                    cursor: pointer;

                    &.parent-01 {
                        position: relative;

                        .child-01 {
                            position: fixed;
                            top: min(104 / var(--design-width) * 100vw, 104px);
                            left: 0;
                            width: 100%;
                            background-image: linear-gradient(90deg, rgba(232, 250, 227, 0.95) 0%, rgba(159, 198, 225, 0.95) 100%);
                            padding: min(40 / var(--design-width) * 100vw, 40px) 0;
                            opacity: 0;
                            visibility: hidden;
                            transition: opacity 0.3s ease, visibility 0.3s ease;
                        }

                        .child-01__inner {
                            display: flex;
                            justify-content: center;
                            gap: 0 min(40 / var(--design-width) * 100vw, 40px);

                            > a {
                                width: min(320 / var(--design-width) * 100vw, 320px);
                                font-family: var(--font-normal);

                                img {
                                    width: min(320 / var(--design-width) * 100vw, 320px);
                                    height: min(140 / var(--design-width) * 100vw, 140px);
                                    object-fit: cover;
                                    border-radius: 8px;
                                }

                                .e-name-01 {
                                    margin-top: min(16 / var(--design-width) * 100vw, 16px);
                                    line-height: 1.8;
                                    color: var(--c-black);

                                    .m-text-01 {
                                        display: block;
                                        font-size: clamp(13px, 14 / var(--design-width) * 100vw, 14px);
                                    }

                                    .m-text-02 {
                                        font-size: clamp(13px, 18 / var(--design-width) * 100vw, 18px);
                                    }

                                    .m-text-03 {
                                        margin-left: min(4 / var(--design-width) * 100vw, 4px);
                                        font-size: clamp(13px, 12 / var(--design-width) * 100vw, 12px);
                                    }
                                }
                            }
                        }

                        &:hover {

                            .child-01 {
                                opacity: 1;
                                visibility: visible;
                            }
                        }
                    }
                }
            }
        }

        .m-button-01 {

            > a {
                display: flex;
                justify-content: center;
                align-items: center;
                width: min(200 / var(--design-width) * 100vw, 200px);
                height: min(60 / var(--design-width) * 100vw, 60px);
                gap: 0 min(16 / var(--design-width) * 100vw, 16px);
                border-radius: 4px;
                background-color: var(--c-green-02);

                .s-text-01 {
                    position: relative;
                    z-index: 2;
                    font-size: min(14 / var(--design-width) * 100vw, 14px);
                    letter-spacing: 0.35em;
                    font-weight: 500;
                    color: var(--c-white);
                }

                .s-icon-01 {
                    display: flex;
                    justify-content: center;
                    align-items: center;
                    flex-shrink: 0;
                    position: relative;
                    z-index: 2;
                    width: min(28 / var(--design-width) * 100vw, 28px);
                    height: min(28 / var(--design-width) * 100vw, 28px);
                    background-color: rgba(255, 255, 255, 0.17);
                    border-radius: 9999px;

                    img {
                        width: min(10 / var(--design-width) * 100vw, 10px);
                        height: min(10 / var(--design-width) * 100vw, 10px);
                    }
                }
            }
        }

        .m-menu-01 {
            display: none;
        }
    }
}
@media screen and (max-width: 899px) {
    .p-header__inner {
        height: min(75 / var(--design-width) * 100vw, 75px);

        .e-logo-01 {
            align-self: flex-start;
            padding-top: min(10 / var(--design-width) * 100vw, 10px);

            a {
                display: block;
                position: relative;
                z-index: 2;
                gap: 0;

                .m-logo-01 {
                    display: block;
                    width: min(118 / var(--design-width) * 100vw, 118px);
                }

                .m-text-01 {
                    display: block;
                    margin-top: min(3 / var(--design-width) * 100vw, 3px);
                    text-align: center;
                    white-space: nowrap;
                    font-size: clamp(10px, 10 / var(--design-width) * 100vw, 10px);
                    line-height: 1.905;
                    letter-spacing: 0.155em;
                }
            }
        }

        .e-navi-01 {
            gap: 0 min(18 / var(--design-width) * 100vw, 18px);

            .m-navi-01 {
                display: none;
            }

            .m-button-01 {

                > a {
                    width: min(130 / var(--design-width) * 100vw, 130px);
                    height: min(30 / var(--design-width) * 100vw, 30px);
                    gap: 0 min(6 / var(--design-width) * 100vw, 6px);

                    .s-text-01 {
                        font-size: min(12 / var(--design-width) * 100vw, 12px);
                        letter-spacing: 0.2em;
                    }

                    .s-icon-01 {
                        width: min(18 / var(--design-width) * 100vw, 18px);
                        height: min(18 / var(--design-width) * 100vw, 18px);

                        img {
                            width: min(6 / var(--design-width) * 100vw, 6px);
                            height: min(6 / var(--design-width) * 100vw, 6px);
                        }
                    }
                }
            }

            .m-menu-01 {
                display: block;
                position: relative;
                z-index: 2;
                flex-shrink: 0;
                width: min(40 / var(--design-width) * 100vw, 40px);
                height: min(18 / var(--design-width) * 100vw, 18px);
                cursor: pointer;

                > span {
                    position: absolute;
                    left: 0;
                    display: block;
                    height: min(2 / var(--design-width) * 100vw, 2px);
                    background-color: var(--c-grey-03);
                    transition: transform 0.3s ease, opacity 0.3s ease;
                }

                .s-line-01 {
                    top: 0;
                    width: min(40 / var(--design-width) * 100vw, 40px);
                }

                .s-line-02 {
                    top: min(8 / var(--design-width) * 100vw, 8px);
                    width: min(40 / var(--design-width) * 100vw, 40px);
                }

                .s-line-03 {
                    top: min(16 / var(--design-width) * 100vw, 16px);
                    left: auto;
                    right: 0;
                    width: min(20 / var(--design-width) * 100vw, 20px);
                }

                &.is-active {

                    .s-line-01 {
                        top: 50%;
                        transform: translateY(-50%) rotate(22deg);
                    }

                    .s-line-02 {
                        top: 50%;
                        transform: translateY(-50%) rotate(-22deg);
                    }

                    .s-line-03 {
                        opacity: 0;
                    }
                }
            }
        }
    }
}

.p-header__menu {
    display: none;
}
@media screen and (max-width: 899px) {
    .p-header__menu {
        display: block;
        position: fixed;
        top: min(75 / var(--design-width) * 100vw, 75px);
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 1;
        overflow-y: auto;
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.3s ease, visibility 0.3s ease;
        background-image: linear-gradient(110deg, var(--c-green-03) 0%, var(--c-blue-09) 100%);

        &.is-open {
            opacity: 1;
            visibility: visible;
        }

        .e-navi-01 {
            width: calc(100% - min(48 / var(--design-width) * 100vw, 48px));
            margin: 0 min(24 / var(--design-width) * 100vw, 24px);
            padding-top: min(25 / var(--design-width) * 100vw, 25px);
        }

        .m-list-01 > dt,
        .m-link-01 > a {
            display: flex;
            align-items: center;
            height: min(70 / var(--design-width) * 100vw, 70px);
            padding-left: min(10 / var(--design-width) * 100vw, 10px);
            border-bottom: 1px solid var(--c-grey-01);
            font-size: clamp(13px, 18 / var(--design-width) * 100vw, 18px);
            line-height: 1;
            letter-spacing: 0.1em;
            font-weight: 400;
            color: var(--c-black);
        }

        .m-list-01 > dt {
            position: relative;
            cursor: pointer;

            &::before,
            &::after {
                content: "";
                position: absolute;
                top: 50%;
                transform: translateY(-50%);
                background-color: var(--c-grey-01);
            }

            &::before {
                right: min(9 / var(--design-width) * 100vw, 9px);
                width: min(13 / var(--design-width) * 100vw, 13px);
                height: min(2 / var(--design-width) * 100vw, 2px);
            }

            &::after {
                right: min(14 / var(--design-width) * 100vw, 14px);
                width: min(2 / var(--design-width) * 100vw, 2px);
                height: min(14 / var(--design-width) * 100vw, 14px);
            }

            &.--v-open::after {
                opacity: 0;
            }
        }

        .accordion-child {
            display: none;

            > div > a {
                display: flex;
                flex-wrap: wrap;
                align-items: center;
                align-content: center;
                height: min(80 / var(--design-width) * 100vw, 80px);
                padding-left: min(10 / var(--design-width) * 100vw, 10px);
                border-bottom: 1px solid var(--c-grey-01);
                letter-spacing: 0.18em;
                color: var(--c-black);
            }

            .s-text-01 {
                width: 100%;
                font-size: clamp(13px, 13 / var(--design-width) * 100vw, 13px);
                line-height: 1.846;
            }

            .s-text-02 {
                font-size: clamp(13px, 16 / var(--design-width) * 100vw, 16px);
                line-height: 1.5;
            }

            .s-text-03 {
                margin-left: min(10 / var(--design-width) * 100vw, 10px);
                font-size: clamp(13px, 13 / var(--design-width) * 100vw, 13px);
                line-height: 1.846;
            }
        }
    }
}



/* Contents */
/* ============================================ */
.p-people-section-05,
.p-talk-section-05,
.p-data-section-05 {
    position: relative;
    padding: min(88 / var(--design-width) * 100vw, 88px) 0 min(128 / var(--design-width) * 100vw, 128px);
    background-color: var(--c-blue-05);

    .e-list-01 {
        margin-top: min(50 / var(--design-width) * 100vw, 50px);
        display: flex;
        justify-content: space-between;

        > li {
            width: min(340 / var(--design-width) * 100vw, 340px);
        }

        .m-img-01 {
            position: relative;

            img {
                width: 100%;
                height: min(220 / var(--design-width) * 100vw, 220px);
                object-fit: cover;
                border-radius: 8px;
            }

            .s-arrow-01 {
                position: absolute;
                right: min(16 / var(--design-width) * 100vw, 16px);
                bottom: min(16 / var(--design-width) * 100vw, 16px);
                display: block;
                width: min(44 / var(--design-width) * 100vw, 44px);
                height: min(44 / var(--design-width) * 100vw, 44px);

                img {
                    width: 100%;
                    height: 100%;
                    border-radius: 0;
                }
            }
        }

        .m-info-01 {
            margin-top: min(26 / var(--design-width) * 100vw, 26px);
            font-size: clamp(13px, 18 / var(--design-width) * 100vw, 18px);
            line-height: 1.222;
            letter-spacing: 0.18em;
            color: var(--c-white);

            .s-text-01 {
                display: block;
                font-size: clamp(13px, 20 / var(--design-width) * 100vw, 20px);
                line-height: 1.6;
                letter-spacing: 0.355em;
            }

            .s-text-02 {
                display: block;
                margin-top: min(10 / var(--design-width) * 100vw, 10px);
                font-size: clamp(13px, 14 / var(--design-width) * 100vw, 14px);
                line-height: 1.571;
            }

            .s-text-04 {
                font-size: clamp(13px, 12 / var(--design-width) * 100vw, 12px);
            }
        }
    }
}
@media screen and (max-width: 899px) {
    .p-people-section-05,
    .p-talk-section-05,
    .p-data-section-05 {
        padding: min(29 / var(--design-width) * 100vw, 29px) 0 min(46 / var(--design-width) * 100vw, 46px);

        .e-list-01 {
            flex-direction: column;
            gap: min(36.68 / var(--design-width) * 100vw, 36.68px) 0;
            margin-top: min(20 / var(--design-width) * 100vw, 20px);

            > li {
                width: 100%;
            }

            .m-img-01 {

                img {
                    height: auto;
                    object-fit: contain;
                }

                .s-arrow-01 {
                    right: min(12 / var(--design-width) * 100vw, 12px);
                    bottom: min(12 / var(--design-width) * 100vw, 12px);
                }
            }

            .m-info-01 {
                margin-top: min(17 / var(--design-width) * 100vw, 17px);
                line-height: 1.444;

                .s-text-01 {
                    line-height: 1.4;
                    letter-spacing: 0.18em;
                }

                .s-text-02 {
                    margin-top: min(6 / var(--design-width) * 100vw, 6px);
                    font-size: clamp(13px, 12.8 / var(--design-width) * 100vw, 12.8px);
                    line-height: 2.031;
                }

                .s-text-04 {
                    font-size: clamp(13px, 12.8 / var(--design-width) * 100vw, 12.8px);
                }
            }
        }
    }
}



/* CTA */
/* ============================================ */
.p-cta-01 {
    display: flex;
    justify-content: center;

    &.--v-panel {
        padding: min(24 / var(--design-width) * 100vw, 24px) 0 min(30 / var(--design-width) * 100vw, 30px);
        background-color: var(--c-white);

        > .p-cta-01__inner {
            width: min(1536 / var(--canvas-width) * 100vw, 1536px);
            padding: min(88 / var(--design-width) * 100vw, 88px) 0;
            border-radius: 8px;
                    background-image: linear-gradient(219deg,
                var(--c-green-03) 0%,
                var(--c-green-04) 42%,
                51.9%,
                var(--c-blue-09) 80%);
        }

        dd {
            margin-top: min(18 / var(--design-width) * 100vw, 18px);
        }
    }

    &.--v-full {
        height: min(508 / var(--design-width) * 100vw, 508px);
            background-image: linear-gradient(113.1deg,
            var(--c-blue-16) 12%,
            57.6%,
            var(--c-green-03) 70.5%);

        > .p-cta-01__inner {
            width: min(1200 / var(--design-width) * 100vw, 1200px);
            padding-top: min(138 / var(--design-width) * 100vw, 138px);
        }

        dd {
            margin-top: min(30 / var(--design-width) * 100vw, 30px);
        }
    }
}
@media screen and (max-width: 899px) {
    .p-cta-01 {

        &.--v-panel {
            padding: min(20 / var(--design-width) * 100vw, 20px) 0;

            > .p-cta-01__inner {
                width: calc(100% - min(48 / var(--design-width) * 100vw, 48px));
                margin: 0 min(24 / var(--design-width) * 100vw, 24px);
                height: auto;
                padding: min(50 / var(--design-width) * 100vw, 50px) min(20 / var(--design-width) * 100vw, 20px) min(46 / var(--design-width) * 100vw, 46px);
                background-image: linear-gradient(50deg,
                    var(--c-blue-09) -11.6%,
                    48.7%,
                    var(--c-green-04) 66.8%,
                    var(--c-green-03) 145%);
            }

            dd {
                margin-top: min(12 / var(--design-width) * 100vw, 12px);
                letter-spacing: 0.12em;
            }
        }

        &.--v-full {
            height: auto;
            padding: min(50 / var(--design-width) * 100vw, 50px) 0 min(44 / var(--design-width) * 100vw, 44px);
            background-image: linear-gradient(50deg,
                var(--c-blue-09) -11.6%,
                48.7%,
                var(--c-green-04) 66.8%,
                var(--c-green-03) 145%);

            > .p-cta-01__inner {
                width: calc(100% - min(48 / var(--design-width) * 100vw, 48px));
                margin: 0 min(24 / var(--design-width) * 100vw, 24px);
                padding-top: 0;
            }

            dd {
                margin-top: min(12 / var(--design-width) * 100vw, 12px);
                letter-spacing: 0.1em;
            }
        }
    }
}

.p-cta-01__inner {
    display: flex;
    justify-content: center;
    gap: 0 min(120 / var(--design-width) * 100vw, 120px);

    .e-button-01 {
        width: min(540 / var(--design-width) * 100vw, 540px);

        > dt {

            > a {
                justify-content: center;
                width: 100%;
                height: min(128 / var(--design-width) * 100vw, 128px);
                border-radius: 8px;
                background-color: var(--c-green-02);

                .s-text-01 {
                    font-size: clamp(13px, 28 / var(--design-width) * 100vw, 28px);
                    line-height: 1.667;
                    letter-spacing: 0.405em;
                    font-weight: 500;
                }

                .s-icon-01 {
                    position: absolute;
                    top: 50%;
                    right: min(38 / var(--design-width) * 100vw, 38px);
                    transform: translateY(-50%);
                    width: min(56 / var(--design-width) * 100vw, 56px);
                    height: min(56 / var(--design-width) * 100vw, 56px);
                    border-radius: 9999px;
                    transition: background-color 0.3s ease;

                    img {
                        width: min(20 / var(--design-width) * 100vw, 20px);
                        height: min(20 / var(--design-width) * 100vw, 20px);
                    }
                }
            }
        }

        > dd {
            font-size: clamp(13px, 16 / var(--design-width) * 100vw, 16px);
            line-height: 1.7;
            text-align: justify;
            color: var(--c-black);
        }
    }
}
@media screen and (max-width: 899px) {
    .p-cta-01__inner {
        flex-direction: column;
        gap: min(34 / var(--design-width) * 100vw, 34px) 0;

        .e-button-01 {
            width: 100%;

            > dt {

                > a {
                    height: min(80 / var(--design-width) * 100vw, 80px);
                    padding-right: min(45 / var(--design-width) * 100vw, 45px);

                    .s-text-01 {
                        font-size: clamp(13px, 20 / var(--design-width) * 100vw, 20px);
                        line-height: 2.272;
                        letter-spacing: 0.4em;
                    }

                    .s-icon-01 {
                        right: min(28 / var(--design-width) * 100vw, 28px);
                        width: min(38 / var(--design-width) * 100vw, 38px);
                        height: min(38 / var(--design-width) * 100vw, 38px);

                        img {
                            width: min(14 / var(--design-width) * 100vw, 14px);
                            height: min(14 / var(--design-width) * 100vw, 14px);
                        }
                    }
                }
            }

            > dd {
                font-size: clamp(13px, 13 / var(--design-width) * 100vw, 13px);
                line-height: 1.75;
            }
        }
    }
}



/* Footer */
/* ============================================ */
.p-footer__link-area {
    padding: min(132 / var(--design-width) * 100vw, 132px) 0 min(46 / var(--design-width) * 100vw, 46px);
    background-color: var(--c-blue-02);
    color: var(--c-white);

    a {
        color: var(--c-white);

        &:hover {
            color: var(--c-white);
        }
    }

    .e-navi-01 {
        display: grid;
        grid-template-columns:
            min(270 / var(--design-width) * 100vw, 270px)
            min(270 / var(--design-width) * 100vw, 270px)
            min(280 / var(--design-width) * 100vw, 280px)
            1fr;

        .m-list-01,
        .m-list-02 {

            > dt {
                font-family: var(--font-cormorant);
                font-size: clamp(13px, 21 / var(--design-width) * 100vw, 21px);
                font-weight: 500;
                line-height: 1;
                letter-spacing: 0.085em;
                margin-bottom: min(22 / var(--design-width) * 100vw, 22px);
            }

            > dd {
                display: block;
                font-size: clamp(13px, 12 / var(--design-width) * 100vw, 12px);
                line-height: 2.154;
                letter-spacing: 0.16em;

                > div + div {
                    margin-top: min(8 / var(--design-width) * 100vw, 8px);
                }
            }
        }

        .m-list-01 + .m-list-01 {
            margin-top: min(72 / var(--design-width) * 100vw, 72px);
        }

        .m-list-01.--v-small > dt {
            font-family: var(--font-baskerville);
            font-size: clamp(13px, 18 / var(--design-width) * 100vw, 18px);
            font-weight: 400;
        }

        .m-list-01 > dd > div > a {

            &.--v-icon-01 {
                display: inline-flex;
                align-items: center;
                gap: 0 min(10 / var(--design-width) * 100vw, 10px);
            }

            .s-icon-01 {

                img {
                    width: min(12 / var(--design-width) * 100vw, 12px);
                    height: min(12 / var(--design-width) * 100vw, 12px);
                }
            }
        }

        > div:nth-child(2) .m-list-01 > dd {
            line-height: 1.923;

            > div + div {
                margin-top: min(20 / var(--design-width) * 100vw, 20px);
            }

            .s-text-01,
            .s-text-02,
            .s-text-03 {
                display: block;
            }
        }

        .m-list-02 > dd > div > a {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding-right: min(10 / var(--design-width) * 100vw, 10px);

            .s-icon-01 {

                img {
                    width: min(8 / var(--design-width) * 100vw, 8px);
                    height: min(8 / var(--design-width) * 100vw, 8px);
                }
            }
        }
    }

    .e-navi-02 {
        display: flex;
        align-items: center;
        gap: 0 min(10 / var(--design-width) * 100vw, 10px);
        margin-top: min(68 / var(--design-width) * 100vw, 68px);

        > div {
            flex: 1;

            .c-button-01 {
                justify-content: center;
                width: 100%;
                height: min(54 / var(--design-width) * 100vw, 54px);
                background-color: var(--c-blue-03);

                span {
                    font-size: clamp(13px, 12 / var(--design-width) * 100vw, 12px);
                    line-height: 1;
                    letter-spacing: 0.3em;
                    color: var(--c-white);
                }
            }
        }
    }

    .e-navi-03 {
        margin-top: min(24 / var(--design-width) * 100vw, 24px);
        font-size: clamp(13px, 12 / var(--design-width) * 100vw, 12px);
        line-height: 2.744;
        letter-spacing: 0.335em;

        > div {
            display: inline-block;
            margin-right: min(10 / var(--design-width) * 100vw, 10px);
        }
    }

    .e-copyright-01 {
        margin-top: min(24 / var(--design-width) * 100vw, 24px);
        padding: 0 min(48 / var(--design-width) * 100vw, 48px);
        font-family: var(--font-normal);
        font-size: clamp(10px, 10 / var(--design-width) * 100vw, 10px);
        font-weight: 300;
        line-height: 1;
        letter-spacing: 0.2em;
        text-align: right;
    }
}
@media screen and (max-width: 899px) {
    .p-footer__link-area {
        padding: min(25 / var(--design-width) * 100vw, 25px) 0 min(29 / var(--design-width) * 100vw, 29px);

        .e-navi-01 {
            display: block;

            .m-list-01,
            .m-list-02 {

                > dt {
                    position: relative;
                    display: flex;
                    align-items: center;
                    height: min(70 / var(--design-width) * 100vw, 70px);
                    padding-left: min(10 / var(--design-width) * 100vw, 10px);
                    margin-bottom: 0;
                    border-bottom: 1px solid var(--c-grey-01);
                    font-family: var(--font-baskerville);
                    font-size: clamp(13px, 24 / var(--design-width) * 100vw, 24px);
                    font-weight: 400;
                    cursor: pointer;

                    &::before,
                    &::after {
                        content: "";
                        position: absolute;
                        top: 50%;
                        transform: translateY(-50%);
                        background-color: var(--c-grey-01);
                    }

                    &::before {
                        right: min(8 / var(--design-width) * 100vw, 8px);
                        width: min(13 / var(--design-width) * 100vw, 13px);
                        height: min(2 / var(--design-width) * 100vw, 2px);
                    }

                    &::after {
                        right: min(14 / var(--design-width) * 100vw, 14px);
                        width: min(2 / var(--design-width) * 100vw, 2px);
                        height: min(14 / var(--design-width) * 100vw, 14px);
                    }

                    &.--v-open::after {
                        opacity: 0;
                    }
                }

                > dd {
                    display: none;
                    font-size: clamp(13px, 13 / var(--design-width) * 100vw, 13px);
                    line-height: 1.846;

                    > div + div {
                        margin-top: 0;
                    }
                }
            }

            .m-list-01 + .m-list-01 {
                margin-top: 0;
            }

            .m-list-01.--v-small > dt {
                font-family: var(--font-baskerville);
                font-size: clamp(13px, 24 / var(--design-width) * 100vw, 24px);
                font-weight: 400;
            }

            .m-list-01 > dd > div > a,
            .m-list-02 > dd > div > a {
                display: flex;
                justify-content: flex-start;
                align-items: center;
                height: min(70 / var(--design-width) * 100vw, 70px);
                padding-left: min(10 / var(--design-width) * 100vw, 10px);
                padding-right: min(9 / var(--design-width) * 100vw, 9px);
                border-bottom: 1px solid var(--c-grey-01);
                letter-spacing: 0.16em;

                &.--v-icon-01 {
                    display: flex;
                    gap: 0;
                }

                .s-icon-01 {
                    margin-left: auto;

                    img {
                        width: min(12 / var(--design-width) * 100vw, 12px);
                        height: min(12 / var(--design-width) * 100vw, 12px);
                    }
                }
            }

            > div:nth-child(2) .m-list-01 > dd {
                line-height: 1.846;

                > div + div {
                    margin-top: 0;
                }

                > div > a {
                    flex-wrap: wrap;
                    align-content: center;
                }

                .s-text-01 {
                    width: 100%;
                }

                .s-text-03 {
                    margin-left: min(10 / var(--design-width) * 100vw, 10px);
                }
            }
        }

        .e-navi-02 {
            flex-direction: column;
            gap: min(20 / var(--design-width) * 100vw, 20px) 0;
            margin-top: min(40 / var(--design-width) * 100vw, 40px);

            > div {
                flex: none;
                width: 100%;

                .c-button-01 {
                    height: min(68 / var(--design-width) * 100vw, 68px);

                    span {
                        font-size: clamp(13px, 13 / var(--design-width) * 100vw, 13px);
                        line-height: 1.619;
                        font-weight: 500;
                    }
                }
            }
        }

        .e-navi-03 {
            margin-top: min(36 / var(--design-width) * 100vw, 36px);
            font-size: clamp(13px, 13 / var(--design-width) * 100vw, 13px);
            line-height: 3.231;
            letter-spacing: 0.16em;
        }

        .e-copyright-01 {
            margin-top: min(40 / var(--design-width) * 100vw, 40px);
            padding: 0;
            font-size: clamp(13px, 12 / var(--design-width) * 100vw, 12px);
            line-height: 1.75;
            text-align: center;
        }
    }
}
