/* ---------
基本設定
----------- */

:root {
    /* フォント */
    --main-font: "Noto Sans JP", sans-serif;
    --sub-font: "Montserrat", sans-serif;

    /* 色  */
    --yellow-color: #F8DC4F;
    --text-color: #000000;
    --text-gray-color: #505050;

    /* シャドウ */
    --btn-shadow: 6px 6px 20px rgba(0, 0, 0, 0.15);
    --object-shadow: 20px 20px 30px rgba(0, 0, 0, 0.1);

    /* ヘッダー高さ（l-pageのpadding-topと連動） */
    --header-height: 45px;
}

/* ---------
共通
----------- */

html {
    overflow-x: hidden;
}

body {
    font-size: 14px;
    font-weight: 400;
    line-height: 1.2;
    color: var(--text-color);
    font-family: var(--main-font);
    overflow-x: hidden;
}

img {
    display: block;
    width: 100%;
    height: auto;
}

.l-page {
    background: #F5F5F5;
    padding-top: var(--header-height);
    padding-bottom: 120px;
}


.section_space {
    width: calc(100% - 40px);
    margin: 0 auto;
}

/* 表示 */
.sp_in {
    display: block;
}

.sp-layout {
    display: block;
}

/* 非表示 */
.pc_in,
.pc-layout {
    display: none;
}

/* リンクを付けない */
.not-link a {
    color: var(--text-color);
    text-decoration: none;
    pointer-events: none;
}

/* スクリーンリーダー専用 */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}


/* 中央 */
.is-center {
    text-align: center;
    margin: 0 auto;
}

@media (min-width: 768px) {

    :root {
        --header-height: 70px;
    }

    .l-page {
        padding-bottom: 180px;
    }

    .section_space {
        width: 100%;
        max-width: 1440px;
    }

    .sp_in {
        display: none;
    }

    .pc_in {
        display: block;
    }

    .sp-layout {
        display: none;
    }

    .pc-layout {
        display: block;
    }

}

/* ---------
ボタン
----------- */

/* ベース */
.cp-btn {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 220px;
    height: 40px;
    border-radius: 40px;
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1;
    text-decoration: none;
    transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}

/* アイコン */
.cp-btn__icon {
    position: absolute;
    right: 14px;
    width: 10px;
    height: 10px;
    object-fit: contain;
}

/* バリエーション：黒 */
.cp-btn--dark {
    background: transparent;
    color: var(--text-color);
    border: 1px solid var(--text-color);
}

/* バリエーション：白枠 */
.cp-btn--outline {
    background: transparent;
    color: #fff;
    border: 1.5px solid #fff;
}

/* バリエーション：LINE緑 */
.cp-btn--line-green {
    background: #06C755;
    color: #fff;
    border: none;
    width: min(69.3333333333vw, 260px);
    height: min(10.6666666667vw, 40px);
}

@media (min-width: 768px) {

    .cp-btn {
        font-size: clamp(0.625rem, 0.9722222222vw, 0.875rem);
        width: clamp(10rem, 5.714rem + 8.93vw, 13.75rem);
        height: 32px;
    }

    .cp-btn--dark:hover,
    .cp-btn--outline:hover {
        background: var(--yellow-color);
        color: var(--text-color);
        border-color: var(--yellow-color);
        box-shadow: var(--btn-shadow);
    }

    .cp-btn--dark:hover .cp-btn__icon,
    .cp-btn--outline:hover .cp-btn__icon {
        content: url("/images/common/btn_more-ic_bk.webp");
    }

    .cp-btn--line-green {
        font-size: clamp(0.75rem, 0.607rem + 0.3vw, 0.875rem);
        width: clamp(13.75rem, 10.893rem + 5.95vw, 16.25rem);
        transition: opacity 0.2s ease;
    }

    .cp-btn--line-green:hover {
        opacity: 0.7;
    }
}