* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    background: #fff;
    overflow-x: hidden;
}


/* =============================
   画像内ボタン位置調整ここだけ
   ============================= */

:root {
    --btn-top: 6.5%;
    /* ボタン上端（画像全体の高さに対する割合） */
    --btn-height: 0.8%;
    /* ボタンの高さ */
    --btn-left: 15%;
    /* ボタン左端 */
    --btn-right: 15%;
    /* ボタン右端からの余白 */

    --access-btn-top: 93.44%;
    /* 益田へのアクセスリンクボタン上端 */
    --access-btn-height: 0.47%;
    /* ボタンの高さ */
    --access-btn-left: 3.9%;
    /* ボタン左端 */
    --access-btn-right: 37.2%;
    /* ボタン右端からの余白 */
}


/* ===== MOBILE ===== */

.mobile-wrapper {
    display: block;
    position: relative;
}

.img-wrap {
    position: relative;
    display: block;
    line-height: 0;
}

.img-wrap img.lp-main {
    width: 100%;
    display: block;
}

.btn-overlay {
    position: absolute;
    top: var(--btn-top);
    left: var(--btn-left);
    right: var(--btn-right);
    height: var(--btn-height);
    /* 透明なクリック領域 */
}

.access-btn-overlay {
    position: absolute;
    top: var(--access-btn-top);
    left: var(--access-btn-left);
    right: var(--access-btn-right);
    height: var(--access-btn-height);
    /* 透明なクリック領域 */
}

.mobile-wrapper img.lp-main {
    width: 100%;
    display: block;
}


/* CTA（下からひょこっと現れる） */

.cta-float {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    z-index: 100;
    transform: translateY(100%);
    transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.cta-float.visible {
    transform: translateY(0);
}

.cta-float a {
    display: block;
}

.cta-float img {
    width: 100%;
    display: block;
}


/* ===== PC ===== */

.pc-wrapper {
    display: none;
}


/* =============================
   PC ロゴ・QR 位置調整ここだけ
   ============================= */

:root {
    --side-top: 25%;
    /* 上からの位置 */
    --side-img-width: 160px;
    /* 画像の横幅 */
    --side-offset: 180px;
    /* lp_img端からの距離 */
    --side-offset-min: 20px;
    /* 最小マージン */
}

@media (min-width: 768px) {
    .mobile-wrapper {
        display: none;
    }
    .pc-wrapper {
        display: block;
        position: relative;
        min-height: 100vh;
    }
    /* 固定背景 */
    .pc-bg {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        z-index: 0;
        background: #C9EAEC;
        /* フォールバック色 */
    }
    /* スクロール可能なコンテンツ */
    .pc-scroll {
        position: relative;
        z-index: 1;
        display: flex;
        flex-direction: column;
        align-items: center;
        padding: 0;
    }
    .pc-scroll .img-wrap {
        max-width: 480px;
        width: 90%;
        box-shadow: 0 4px 16px 0 rgba(0, 0, 0, 0.25);
    }
    .pc-scroll .img-wrap img.lp-main {
        width: 100%;
        display: block;
        box-shadow: none;
    }
    /* PCではモバイルCTAを非表示 */
    .cta-float {
        display: none;
    }
    /* ロゴ・QRコード */
    .pc-logo {
        position: fixed;
        left: max(var(--side-offset-min), calc((100vw - 480px) / 4 - var(--side-img-width) / 2));
        top: var(--side-top);
        transform: translateY(-50%);
        z-index: 10;
    }
    .pc-logo img {
        width: clamp(180px, 14vw, 350px);
        display: block;
    }
    .pc-qr {
        position: fixed;
        right: max(var(--side-offset-min), calc((100vw - 480px) / 4 - var(--side-img-width) / 2));
        top: var(--side-top);
        transform: translateY(-50%);
        z-index: 10;
    }
    .pc-qr img {
        width: 7rem;
        display: block;
    }
}
