@charset "utf-8";
@import url("https://use.typekit.net/jym5tom.css");
@import url("https://cdn.jsdelivr.net/npm/yakuhanjp@4.0.1/dist/css/yakuhanjp.css");
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@700&family=Noto+Sans+JP:wght@100..900&display=swap');
@import url("https://use.typekit.net/hkt4nej.css");
/****************************************************************************

    変数設定

****************************************************************************/
:root {
    /****************************************************************************
        色設定
    ****************************************************************************/
    --green_hsl: 168 95% 17%;
    --green_container_hsl: 168 87% 31%;
    --green_fixed_hsl: 168 77% 93%;
    --green_fixed_dim_hsl: 168 53% 86%;
    --ivory_hsl: 110 100% 94%;
    --yellow_hsl: 52 100% 52%;
    --black_hsl: 158 93% 6%;
    --white_hsl: 0 0% 100%;

    --primary: hsl(var(--green_hsl)); /* メインカラー：input box・ボタンの色 */
    --on_primary: hsl(var(--white_hsl)); /* メインカラーの上にある要素色 */
    --primary_container: hsl(var(--green_container_hsl));
    --primary_fixed: hsl(var(--green_fixed_hsl));
    --primary_fixed_dim: hsl(var(--green_fixed_dim_hsl));
    --secondary: hsl(var(--yellow_hsl)); /* 強調色 */
    --on_secondary: var(--primary); /* 強調色の上にある要素色 */
    --surface: hsl(var(--ivory_hsl)); /* 背景色 */
    --on_surface: hsl(var(--primary)); /* 背景色の上にある要素色 */
    --text_color: hsl(var(--black_hsl));
    --white: hsl(var(--white_hsl));

    --box_shadow: 0px 0px 30px 0px hsl(var(--green_hsl) / 0.16);
    --btn_shadow: 0px 4px 10px 0px hsl(var(--black_hsl) / 0.10);

    --primary_gradient: linear-gradient(90deg, hsl(var(--green_hsl) / var(--gradient_opacity)) 48%, hsl(var(--green_container_hsl) / var(--gradient_opacity)) 100%);
    --gradient_opacity: 1;
    --underline: linear-gradient(transparent calc(100% - var(--border)), var(--secondary) calc(100% - var(--border)));
    --border: 20%;

    /****************************************************************************
        各利用可能サイズ基準設定 (この範囲以外の数字利用不可(1px、2px、3px除く))
    ****************************************************************************/
    --none: 0rem; /* = 0px */
    --XXS: 0.25rem; /* = 4px */
    --XS: 0.5rem; /* = 8px */
    --S: 0.75rem; /* = 12px */
    --M: 0.875rem; /* = 14px */
    --L: 1rem; /* = 16px = 全体フォンドサイズ設定 */
    --XL: 1.125rem; /* = 18px */
    --XXL: 1.25rem; /* = 20px */
    --XXXL: 1.5rem; /* = 24px */
    --4XL: 2rem; /* = 32px */
    --5XL: 2.5rem; /* = 40px */
    --6XL: 3rem; /* = 48px */
    --7XL: 3.5rem; /* = 56px */
    --8XL: 4rem; /* = 64px */
    /****************************************************************************
        書式・サイズ設定
    ****************************************************************************/
    /*font-size: 16px; /* 全体フォンドサイズ設定、この数字は 1rem のこと */
    --main_font: YakuHanJP, "Noto Sans JP", sans-serif;
    --font_futura: "futura-pt", sans-serif;
    --font_montserrat: "Montserrat", sans-serif;

    --header: var(--L);
    --h1: var(--8XL);
    --h2: var(--4XL);
    --h3: var(--5XL); /* 各セクションのタイトル用 */
    --h4: var(--6XL);
    --h5: var(--XXL);
    --h6: var(--L);
    --body: var(--XXL); /* 全体文字サイズ */
    --caption: var(--S); /* メモ・Footerなどの文字サイズ */

    --cta: var(--XXXL); /* CTA 文字サイズ */
    --btn: var(--XXXL); /* BTN 文字サイズ */
    --gauge_number: calc(var(--4XL) * 2.5); /* フローの数字サイズ */

    --line_height: 1.5; /* 全体行間 */
    --line_height_samll: 1.2; /* caption 文字行間 */

    --span_biggest: 1.5em;
    --span_big: 1.2em;
    --span_small: 0.875em;
    --span_tiny: 0.5em;

    --max_width: min(100%, 1000px);

    @media only screen and (width < 768px) {
        --header: var(--S);
        --h1: var(--5XL);
        --h2: var(--L);
        --h3: var(--XXXL); /* 各セクションのタイトル用 */
        --h4: var(--XXXL);
        --body: var(--L); /* 全体文字サイズ */

        --btn: var(--M); /* BTN 文字サイズ */
        --gauge_number: calc(var(--4XL) * 2); /* フローの数字サイズ */
    }

    /****************************************************************************
        padding 設定
    ****************************************************************************/
    --padding_header: var(--L);

    --padding_main_visual: 12svh calc((100dvw - var(--max_width)) / 2 + var(--L)) 0;

    --padding_h2: var(--none) var(--S) var(--XXS) var(--XXXL);
    --padding_article: calc(var(--5XL) * 2) var(--L);
    --padding_content: var(--none) var(--L);
    --padding_cta_zone: var(--4XL) var(--8XL) var(--5XL);

    --padding_btn: var(--M) var(--5XL);
    --padding_cta: var(--XXL) var(--8XL);

    --padding_features_h3_speech_bubble: var(--XS) var(--8XL) var(--S);
    --padding_features_li: var(--4XL) var(--4XL) var(--5XL);

    --padding_support_li: var(--4XL) var(--5XL) var(--7XL);

    --padding_form_main: var(--5XL) calc(var(--L) * 5);

    --padding_footer: var(--5XL) var(--L) var(--XXL);

    --padding_thanks: var(--5XL) calc(var(--5XL) * 2) var(--8XL);
    --padding_h6: var(--XXS) var(--XXL);

    @media only screen and (width < 768px) {
        --padding_main_visual: calc(var(--6XL) * 2) calc((100dvw - var(--max_width)) / 2 + var(--L)) 0;

        --padding_h2: var(--none) var(--XS) var(--XXS) var(--M);
        --padding_content: var(--none);
        --padding_cta_zone: var(--XXXL) var(--XXL);

        --padding_btn: var(--M) var(--XXXL) var(--S) var(--S);
        --padding_cta: var(--XXL) var(--6XL) var(--XXL) var(--XXXL);

        --padding_features_h3_speech_bubble: var(--XS) var(--4XL) var(--S);

        --padding_support_li: var(--4XL) var(--4XL) var(--7XL);

        --padding_form_main: var(--5XL) var(--XS);

        --padding_thanks: var(--5XL) var(--XXL) var(--8XL);
    }

    /****************************************************************************
        gap 設定
    ****************************************************************************/
    --gap_h1: var(--L) 0;
    --gap_income_increase_rate: var(--4XL) 0;

    --gap_cta_zone: var(--XXL);
    --gap_cta_zone_li: var(--XXXL);

    --gap_cta_top: var(--8XL);

    --gap_features_li: var(--XXXL);
    --gap_features_li_info: var(--XXL);

    --gap_support_li: var(--5XL);
    --gap_support_li_title: var(--XXXL);
    --gap_support_li_info: var(--4XL);

    --gap_cta_article_title: var(--6XL);

    --gap_footer: var(--5XL);

    @media only screen and (width < 768px) {
        --gap_h1: var(--S) 0;
        --gap_income_increase_rate: var(--XL) 0;

        --gap_cta_zone_li: var(--XS);
    }

    /****************************************************************************
        角丸設定
    ****************************************************************************/
    --radius_small: var(--XXS);
    --radius: var(--S);
    --radius_big: var(--XXL);
    --radius_circle: 9999px;
}
/****************************************************************************

    ページ全体設定

****************************************************************************/
* { /* reset */
    margin: 0;
    padding: 0;
    border: 0;
    box-sizing: border-box;
}
::-moz-selection { /* 文字選択時の色 */
    background: var(--primary);
    color: var(--secondary);
}
::selection { /* 文字選択時の色 */
    background: var(--primary);
    color: var(--secondary);
}
html{
    scroll-behavior: smooth;
    font-size: initial;
    font-weight: initial;
}
body{
    position: relative;
    font-family: var(--main_font);
    font-size: var(--body);
    font-weight: 500;
    line-height: var(--line_height);
    background: var(--surface); /* フォームの外側の色 */
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
:where(p, h1, h2, h3, h4, h5, h6) {
	font-weight: 700 !important;
}
a{
    text-decoration: none;
    transition: color 0.3s ease-in-out;
}
.pc_only{
    display: block;
    @media only screen and (width < 768px) {
        display: none !important;
    }
}
.sp_only{
    display: none;
    @media only screen and (width < 768px) {
        display: block !important;
    }
}
/****************************************************************************

    固定要素

****************************************************************************/
header{
    position: fixed;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    width: var(--max_width);
    font-size: var(--header);
    font-weight: 400;
    color: var(--text_color);
    padding: var(--padding_header);
    z-index: 99;
    & picture img{
        height: var(--5XL);
        width: auto;
    }
}

/****************************************************************************

    メインコンテンツ

****************************************************************************/
main{ /* メインコンテンツ */
    position: relative;
    min-height: 100dvh;
    padding-bottom: 170px;
    & article{
        &.main_visual{
            position: relative;
            height: 80svh;
            padding: var(--padding_main_visual);
            background: url(../../../img/lp/listing-2/fv_BG.png);
            background-color: var(--primary_fixed);
            background-repeat: no-repeat;
            background-blend-mode: multiply;
            background-size: 60dvw;
            background-position: 4svw 50%;
            &::before{
                content: "";
                position: absolute;
                width: 100%;
                height:100%;
                top: 0;
                left: 0;
                background-color: var(--primary_fixed);
                opacity: 0.5;
                z-index: 0;
            }
            &::after{
                content: "";
                position: absolute;
                right: 10dvw;
                bottom: 0;
                width: 336px;
                aspect-ratio: 672 / 1070;
                background: url(../../../img/lp/listing-2/fv_img.png);
                background-repeat: no-repeat;
                background-size: 100%;
                z-index: 0;
            }
            & h2{
                position: relative;
                width: fit-content;
                font-size: var(--h2);
                font-weight: 500;
                color: var(--white);
                background: var(--primary_gradient);
                border-radius: var(--radius_small);
                padding: var(--padding_h2);
                z-index: 3;
            }
            & h1{
                position: relative;
                width: fit-content;
                font-size: var(--h1);
                line-height: var(--line_height_samll);
                margin: var(--gap_h1);
                background: var(--primary_gradient);
                -webkit-background-clip: text;
                -webkit-text-fill-color: transparent;
                z-index: 3;
                & span{
                    font-size: var(--span_small);
                }
            }
            & p{
                position: relative;
                color: var(--text_color);
                z-index: 3;
                &:not(.income_increase_rate) span{
                    background: var(--underline);
                }
                &.income_increase_rate{
                    display: block;
                    width: fit-content;
                    text-align: center;
                    padding: 0 var(--7XL);
                    margin: var(--gap_income_increase_rate);
                    & span{
                        font-size: var(--font_size);
                        line-height: 1;
                    }
                    &::before,
                    &::after{
                        width: 52px;
                        aspect-ratio: 52 / 84;
                        position: absolute;
                        top: 50%;
                        transform: translateY(-50%);
                    }
                    &::before{
                        content: url(../../../img/lp/listing-2/laureate_left.svg);
                        left: 0;
                    }
                    &::after{
                        content: url(../../../img/lp/listing-2/laureate_right.svg);
                        right: 0;
                    }
                }
            }
            & .cta_zone{
                position: absolute;
                bottom: -100px;
                left: 50%;
                transform: translateX(-50%);
                color: var(--text_color);
                background: var(--white);
                box-shadow: var(--box_shadow);
                z-index: 3;
            }
            @media only screen and (width < 768px) {
                height: 577px;
                background-size: 100dvw;
                background-position: 4svw 30svh;
                &::after{
                    right: -20dvw;
                    top: 40svh;
                    width: 240px;
                }
                & .cta_zone{
                    width: calc(100dvw - var(--L) * 2);
                }
            }
        }
        &:not(.main_visual){
            display: flex;
            flex-direction: column;
            align-items: center;
            padding: var(--padding_article);
            & h3{
                font-size: var(--h3);
                line-height: var(--line_height);
                text-align: center;
                & span{
                    background: var(--underline);
                }
            }
            &:is(.features){
                position: relative;
                background: var(--primary_gradient);
                padding-top: 242px;
                overflow: hidden;
                &::before,
                &::after{
                    content: url(../../../img/lp/listing-2/bg_assets.svg);
                    position: absolute;
                    width: 44dvw;
                    height: auto;
                    z-index: 0;
                }
                &::before{
                    top: 10svh;
                    left: -22svw;
                }
                &::after{
                    bottom: -10svh;
                    right: -17dvw;
                }
                & h3{
                    position: relative;
                    color: var(--on_primary);
                    &::before{
                        content: "転職経験が少ない方も安心";
                        position: absolute;
                        top: calc((var(--XXXL) + var(--XS) + var(--S) + var(--h3) / 2) * -1);
                        left: 50%;
                        transform: translateX(-50%);
                        display: block;
                        width: max-content;
                        padding: var(--padding_features_h3_speech_bubble);
                        border-radius: var(--radius_circle);
                        background: var(--primary_fixed_dim);
                        color: var(--primary_container);
                        font-size: max(var(--span_tiny), var(--XL));
                        font-weight: 500;
                    }
                    &::after{
                        content: "";
                        position: absolute;
                        top: calc(var(--XXXL) * -1);
                        left: 50%;
                        transform: translateX(-50%);
                        width: 0;
                        height: 0;
                        display: block;
                        border-style: solid;
                        border-width: var(--XXXL) calc(var(--XXL) / 2) var(--none) calc(var(--XXL) / 2);
                        border-color: var(--primary_fixed_dim) transparent transparent transparent;
                    }
                    & + p{
                        font-size: var(--XXXL);
                        font-weight: 700;
                        color: var(--on_primary);
                        text-align: center;
                        margin: var(--S) auto var(--5XL);
                    }
                }
                & ul{
                    display: flex;
                    flex-direction: row;
                    justify-content: space-between;
                    gap: var(--gap_features_li);
                    width: var(--max_width);
                    padding: var(--padding_content);
                    z-index: 1;
                    & li{
                        display: flex;
                        flex-direction: column;
                        align-items: center;
                        flex: 1;
                        gap: var(--gap_features_li_info);
                        padding: var(--padding_features_li);
                        background: var(--on_primary);
                        border-radius: var(--radius);
                        font-size: var(--XXL);
                        color: var(--text_color);
                        line-height: var(--line_height);
                        text-align: center;
                        & img{
                            width: 147px;
                            aspect-ratio: 1 / 1;
                        }
                    }
                }
                @media only screen and (width < 768px) {
                    padding-top: 180px;
                    &::before{
                        top: 10svh;
                        left: -100svw;
                    }
                    &::after{
                        bottom: -10svh;
                        right: 63dvw;
                    }
                    & h3 + p{
                        font-size: var(--XL);
                    }
                    & ul{
                        flex-direction: column;
                    }
                }
            }
            &:is(.support){
                & h3{
                    color: var(--primary);
                }
                & ul{
                    display: flex;
                    flex-direction: column;
                    gap: var(--gap_support_li);
                    width: var(--max_width);
                    padding: var(--padding_content);
                    margin-top: var(--8XL);
                    & li{
                        display: flex;
                        flex-direction: row;
                        flex-wrap: wrap;
                        gap: var(--gap_support_li_title) var(--gap_support_li_info);
                        padding: var(--padding_support_li);
                        background: var(--white);
                        border-radius: var(--radius_big);
                        box-shadow: var(--box_shadow);
                        counter-increment: supportNo;
                        & h4{
                            width: 100%;
                            font-size: var(--h4);
                            color: var(--primary);
                            padding-left: calc(var(--6XL) * 2 + var(--L));
                            order: 1;
                            &::before{
                                content: "0"counter(supportNo);
                                display: inline-block;
                                font-family: var(--font_montserrat);
                                font-size: var(--gauge_number);
                                text-shadow: 2px 2px 0 var(--secondary);
                                margin-right: var(--L);
                                margin-left: calc((var(--6XL) * 2 + var(--L)) * -1);
                                vertical-align: sub;
                            }
                        }
                        & section{
                            flex: 1;
                            order: 2;
                            color: var(--text_color);
                            & p + p{
                                margin-top: var(--body);
                            }
                        }
                        & img{
                            width: min(50%, 420px);
                            height: fit-content;
                            aspect-ratio: 7 / 4;
                            border-radius: var(--radius);
                            order: 3;
                        }
                    }
                }
                @media only screen and (width < 768px) {
                    & ul{
                        & li{
                            flex-direction: column;
                            & h4{
                                padding-left: calc(var(--4XL) * 2 + var(--L) * 2);
                                line-height: 0;
                                order: 1;
                                &::before{
                                    vertical-align: top;
                                    text-indent: calc(var(--h4) * 1);
                                    line-height: 0.6;
                                }
                            }
                            & section{
                                order: 3;
                            }
                            & img{
                                width: 100%;
                                margin-top: var(--gap_support_li_title);
                                order: 2;
                            }
                        }
                    }
                }
            }
            &:is(.customer){
                background: var(--white);
                & h3{
                    color: var(--primary);
                }
                & ul{
                    display: grid;
                    grid-template-columns: repeat(3 ,1fr);
                    gap: var(--none);
                    margin-top: var(--8XL);
                    padding: var(--padding_content);
                }
                @media only screen and (width < 768px) {
                    & ul{
                        grid-template-columns: repeat(2 ,1fr);
                    }
                }
            }
            &:is(.cta_article){
                position: relative;
                --gradient_opacity: 0.6;
                color: var(--on_primary);
                background: linear-gradient(90deg, hsl(var(--green_hsl) / var(--gradient_opacity)) 48%, hsl(var(--green_container_hsl) / var(--gradient_opacity)) 100%), url(../../../img/lp/listing-2/cta_bg.png);
                background-position: 50% 50%;
                background-size: cover;
                overflow: hidden;
                &::before,
                &::after{
                    content: url(../../../img/lp/listing-2/bg_assets.svg);
                    position: absolute;
                    width: 44dvw;
                    height: auto;
                    z-index: 0;
                }
                &::before{
                    bottom: -22svh;
                    left: -22svw;
                }
                &::after{
                    top: -22svh;
                    right: -17dvw;
                }
                & h3{
                    background: unset;
                    & span{
                        background: unset;
                        color: var(--secondary);
                        font-size: var(--span_big);
                    }
                }
                & .cta_zone{
                    padding: var(--padding_content);
                }
                @media only screen and (width < 768px) {
                    &::before,
                    &::after{
                        display: none;
                    }
                }
            }
            &:is(.thanks){
                padding: var(--padding_article);
                & section{
                    width: var(--max_width);
                    font-size: var(--L);
                    font-weight: 400;
                    color: var(--text_color);
                    background: var(--white);
                    border-radius: var(--radius_big);
                    box-shadow: var(--box_shadow);
                    padding: var(--padding_thanks);
                    & h3{
                        color: var(--primary);
                    }
                    & h5{
                        font-size: var(--h5);
                        text-align: center;
                        margin: var(--4XL) auto var(--5XL);
                    }
                    & ul{
                        margin-top: var(--XXL);
                        & li{
                            & + li{
                                margin-top: var(--XXL);
                            }
                            & h6{
                                width: fit-content;
                                font-size: var(--h6);
                                color: var(--white);
                                background: var(--primary_gradient);
                                border-radius: var(--radius_small);
                                padding: var(--padding_h6);
                                margin-bottom: var(--XXS);
                                @media only screen and (width < 768px) {
                                    width: 100%;
                                }
                            }
                            & p + p{
                                margin-top: var(--XS);
                            }
                        }
                        &.note{
                            color: var(--primary);
                            list-style-type: none;
                            & li{
                                margin: var(--none);
                                padding-left: var(--XXL);
                                &::before{
                                    content: "※";
                                    margin-right: var(--XXS);
                                    margin-left: calc(var(--XXL) * -1);
                                }
                            }
                        }
                    }
                }
            }
        }
        & .cta,
        & .btn{
            position: relative;
            display: block;
            font-weight: 700;
            color: var(--on_secondary);
            background: var(--secondary);
            box-shadow: var(--btn_shadow);
            text-align: center;
            transition: opacity 300ms ease-out;
            z-index: 3;
            &::after{
                content: url(../../../img/lp/listing-2/arrow.svg);
                aspect-ratio: 11 / 14;
                position: absolute;
                top: 50%;
                transform: translateY(-50%);
            }
            &:is(.cta){
                width: min(100%, 560px);
                font-size: var(--cta);
                border-radius: var(--radius_circle);
                padding: var(--padding_cta);
                margin-top: var(--gap_cta_top);
                &::after{
                    right: var(--5XL);
                }
            }
            &:is(.btn){
                width: 100%;
                font-size: var(--btn);
                border-radius: var(--radius);
                padding: var(--padding_btn);
                &::after{
                    right: var(--XXL);
                }
                @media only screen and (width < 768px) {
                    &::after{
                        right: var(--XS);
                        transform: translateY(-50%) scale(0.73);
                    }
                }
            }
            @media (hover: hover){
                &:hover{
                    opacity: 0.7;
                }
            }
            @media only screen and (width < 768px) {
                &:is(.cta)::after{
                    right: var(--XXXL);
                }
            }

        }
        & .cta_zone{
            width: min(100%, 750px);
            padding: var(--padding_cta_zone);
            border-radius: var(--radius);
            text-align: center;
            margin-top: var(--XL);
            & ol{
                width: 100%;
                display: flex;
                flex-direction: row;
                gap: var(--gap_cta_zone_li);
                margin-top: var(--gap_cta_zone);
                & li{
                    width: max(100%, 300px);
                }
            }
        }
    }
}
footer{
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100dvw;
    text-align: center;
    background: var(--primary_gradient);
    padding: var(--padding_footer);
    & img{
        height: var(--5XL);
        width: auto;
        margin: 0 auto var(--gap_footer);
    }
    & em{
        font-size: var(--caption);
        font-style: normal;
        color: var(--on_primary);
    }
}
