.ab-lp-cta,
.ab-lp-cta * {
    box-sizing: border-box;
}

.ab-lp-cta {
    width: 100%;
    max-width: 780px;
    margin: 30px auto;
    padding: 24px 18px;
    border-radius: 22px;
    text-align: center;
    font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
    background: linear-gradient(180deg, #fffaf0 0%, #ffffff 100%);
    border: 3px solid #ff9800;
    box-shadow: 0 12px 28px rgba(255, 152, 0, 0.16);
    overflow: hidden;
}

.ab-lp-cta-label {
    display: inline-block;
    margin: 0 0 12px;
    padding: 6px 16px;
    border-radius: 999px;
    background: #fff3cd;
    color: #b45f00;
    font-size: 14px;
    font-weight: 800;
    line-height: 1.5;
}

.ab-lp-cta-title {
    margin: 0 0 10px;
    color: #222;
    font-size: 23px;
    font-weight: 900;
    line-height: 1.55;
}

.ab-lp-cta-text {
    margin: 0 0 20px;
    color: #444;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.85;
}

.ab-lp-cta-button {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 440px;
    min-height: 60px;
    padding: 15px 24px;
    border-radius: 999px;
    background: linear-gradient(135deg, #ff9800 0%, #ff5722 100%);
    color: #fff !important;
    font-size: 18px;
    font-weight: 900;
    line-height: 1.45;
    text-align: center;
    text-decoration: none !important;
    box-shadow: 0 8px 0 #c94712, 0 14px 24px rgba(255, 87, 34, 0.28);
    overflow: hidden;
    transform: translateY(0);
}

.ab-lp-cta-button:hover {
    opacity: 0.94;
    transform: translateY(2px);
    box-shadow: 0 5px 0 #c94712, 0 10px 20px rgba(255, 87, 34, 0.24);
}

.ab-lp-cta-button::before {
    content: "";
    position: absolute;
    top: 0;
    left: -90%;
    width: 65%;
    height: 100%;
    background: linear-gradient(120deg, transparent, rgba(255, 255, 255, 0.6), transparent);
    transform: skewX(-20deg);
    pointer-events: none;
}

/* マイクロコピー */
.ab-lp-cta-note {
    margin-top: 13px;
    color: #666;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.7;
}

/* カラー：ブルー */
.ab-lp-cta.is-blue {
    background: linear-gradient(180deg, #f4fbff 0%, #ffffff 100%);
    border-color: #1e88e5;
    box-shadow: 0 12px 28px rgba(30, 136, 229, 0.14);
}

.ab-lp-cta.is-blue .ab-lp-cta-label {
    background: #e3f2fd;
    color: #1565c0;
}

.ab-lp-cta.is-blue .ab-lp-cta-button {
    background: linear-gradient(135deg, #1e88e5 0%, #1565c0 100%);
    box-shadow: 0 8px 0 #0d47a1, 0 14px 24px rgba(30, 136, 229, 0.28);
}

.ab-lp-cta.is-blue .ab-lp-cta-button:hover {
    box-shadow: 0 5px 0 #0d47a1, 0 10px 20px rgba(30, 136, 229, 0.24);
}

/* カラー：グリーン */
.ab-lp-cta.is-green {
    background: linear-gradient(180deg, #f1fff6 0%, #ffffff 100%);
    border-color: #2eaf63;
    box-shadow: 0 12px 28px rgba(46, 175, 99, 0.14);
}

.ab-lp-cta.is-green .ab-lp-cta-label {
    background: #e8f8ee;
    color: #1b7f45;
}

.ab-lp-cta.is-green .ab-lp-cta-button {
    background: linear-gradient(135deg, #2eaf63 0%, #168747 100%);
    box-shadow: 0 8px 0 #0f6334, 0 14px 24px rgba(46, 175, 99, 0.28);
}

.ab-lp-cta.is-green .ab-lp-cta-button:hover {
    box-shadow: 0 5px 0 #0f6334, 0 10px 20px rgba(46, 175, 99, 0.24);
}

/* カラー：レッド */
.ab-lp-cta.is-red {
    background: linear-gradient(180deg, #fff5f5 0%, #ffffff 100%);
    border-color: #e53935;
    box-shadow: 0 12px 28px rgba(229, 57, 53, 0.14);
}

.ab-lp-cta.is-red .ab-lp-cta-label {
    background: #ffebee;
    color: #c62828;
}

.ab-lp-cta.is-red .ab-lp-cta-button {
    background: linear-gradient(135deg, #e53935 0%, #c62828 100%);
    box-shadow: 0 8px 0 #8e1b1b, 0 14px 24px rgba(229, 57, 53, 0.28);
}

.ab-lp-cta.is-red .ab-lp-cta-button:hover {
    box-shadow: 0 5px 0 #8e1b1b, 0 10px 20px rgba(229, 57, 53, 0.24);
}

/* カラー：グレー */
.ab-lp-cta.is-gray {
    background: linear-gradient(180deg, #f7f8fa 0%, #ffffff 100%);
    border-color: #607d8b;
    box-shadow: 0 12px 28px rgba(96, 125, 139, 0.14);
}

.ab-lp-cta.is-gray .ab-lp-cta-label {
    background: #eceff1;
    color: #455a64;
}

.ab-lp-cta.is-gray .ab-lp-cta-button {
    background: linear-gradient(135deg, #607d8b 0%, #455a64 100%);
    box-shadow: 0 8px 0 #263238, 0 14px 24px rgba(96, 125, 139, 0.28);
}

.ab-lp-cta.is-gray .ab-lp-cta-button:hover {
    box-shadow: 0 5px 0 #263238, 0 10px 20px rgba(96, 125, 139, 0.24);
}

/* 動き：光る */
.ab-lp-cta.is-motion-shine .ab-lp-cta-button::before,
.ab-lp-cta.is-motion-both .ab-lp-cta-button::before {
    animation: ab-lp-cta-shine 2.8s infinite;
}

@keyframes ab-lp-cta-shine {
    0% {
        left: -90%;
    }
    55% {
        left: 130%;
    }
    100% {
        left: 130%;
    }
}

/* 動き：ドクンドクン */
.ab-lp-cta.is-motion-pulse .ab-lp-cta-button,
.ab-lp-cta.is-motion-both .ab-lp-cta-button {
    animation: ab-lp-cta-pulse 1.8s infinite;
}

@keyframes ab-lp-cta-pulse {
    0% {
        transform: scale(1);
    }
    45% {
        transform: scale(1.035);
    }
    100% {
        transform: scale(1);
    }
}

/* 動きなし */
.ab-lp-cta.is-motion-none .ab-lp-cta-button,
.ab-lp-cta.is-motion-none .ab-lp-cta-button::before {
    animation: none !important;
}

/* スマホ */
@media (max-width: 600px) {
    .ab-lp-cta {
        margin: 24px auto;
        padding: 20px 14px;
        border-radius: 18px;
    }

    .ab-lp-cta-label {
        font-size: 13px;
        margin-bottom: 10px;
    }

    .ab-lp-cta-title {
        font-size: 20px;
        line-height: 1.55;
    }

    .ab-lp-cta-text {
        font-size: 14px;
        line-height: 1.8;
        margin-bottom: 18px;
    }

    .ab-lp-cta-button {
        max-width: 100%;
        min-height: 56px;
        padding: 14px 18px;
        font-size: 17px;
    }

    .ab-lp-cta-note {
        font-size: 12px;
    }
}

/* 動きを減らす設定 */
@media (prefers-reduced-motion: reduce) {
    .ab-lp-cta-button,
    .ab-lp-cta-button::before {
        animation: none !important;
    }
}