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

:root {
    /* フォント */
    --main-font: "Noto Sans JP", sans-serif;
    --mincho-font: "Noto Serif JP", serif;
    --shipo-mincho-font: "Shippori Mincho", serif;
    --en-font: "Lora", serif;

    /* 色  */
    --text-color: #333333;
    --main-color: #0069B7;
    --main-color-thin: rgba(0, 105, 183, 0.3);
    --point-color: #E38C00;

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

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

html {
    overflow-x: hidden;
}

body {
    font-size: 1rem;
    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;
}

em {
    font-style: normal;
}

.l-page {
    padding-top: var(--header-height);
    background: url('../images/common/bg-deco-sp.jpg') center / cover repeat-y;
    font-family: var(--mincho-font);
}


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

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

.sp-layout {
    display: block;
}

/* 非表示 */
.pc_in,
.pc-layout,
.c-btn.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;
}

/* ボタン */

.c-btn {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: min(74.6666666667vw, 280px);
    height: min(14.6666666667vw, 55px);
    max-width: 560px;
    padding: min(3.7333333333vw, 14px) min(6.4vw, 24px);
    font-size: min(3.7333333333vw, 0.875rem);
    font-weight: 500;
    margin: 0 auto;
    overflow: hidden;
}

.c-btn::before {
    content: '';
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity 0.3s;
    z-index: 0;
}

.c-btn::after {
    z-index: 2;
}

.c-btn span {
    position: relative;
    z-index: 1;
}

.c-btn::after {
    content: '';
    position: absolute;
    right: min(6.6666666667vw, 25px);
    top: 50%;
    width: min(2.6666666667vw, 10px);
    height: min(2.6666666667vw, 10px);
    border-right: 1px solid currentColor;
    border-bottom: 1px solid currentColor;
    transform: translateY(-50%) rotate(-45deg);
}

.c-btn--grad {
    background: url('../images/common/cp-btn.png') center / cover no-repeat;
    color: #fff;
}

.c-btn--grad::before {
    background: url('../images/common/cp-btn-hover.png') center / cover no-repeat;
}

.c-btn--white {
    background: #fff;
    color: var(--main-color);
}

@media (min-width: 768px) {

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

    .l-page {
        background-image: url('../images/common/bg-deco-pc.jpg');
    }

    .section-space {
        width: 100%;
        max-width: 1920px;
    }

    .sp_in {
        display: none;
    }

    .pc_in {
        display: block;
    }

    .sp-layout {
        display: none;
    }

    .pc-layout {
        display: block;
    }

    nav.pc-layout,
    .c-btn.pc-layout {
        display: flex;
    }

    .c-btn {
        width: clamp(11.25rem, 6.25rem + 10.42vw, 18.75rem);
        height: clamp(1.875rem, 0.625rem + 2.6vw, 3.75rem);
        font-size: clamp(0.75rem, 0.8333333333vw, 1rem);
    }

    .c-btn::after {
        right: min(1.3020833333vw, 25px);
        width: clamp(0.313rem, 0.104rem + 0.43vw, 0.625rem);
        height: clamp(0.313rem, 0.104rem + 0.43vw, 0.625rem);
    }

    .c-btn--grad:hover::before {
        opacity: 1;
    }

    .c-btn--white:hover {
        background: #FFF798;
        color: var(--text-color);
        transition: background 0.3s;
    }

}