/* Reserve.M LP 주요 버튼 공통 규칙: 큰 버튼 1줄 56 / 2줄 64, 분홍 #c4445b, 모서리 16. 헤더 버튼(40)은 lp-shell.css */
.hero__cta--primary,
.pv2__cta,
.swlp .swcta:not(.swcta--ghost),
.fq-end .pv2__cta,
.ms-final__cta,
.lb__cta[data-store-download-cta],
.lb--hp .lb__cta[data-store-download-cta],
.nl-cta {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    box-sizing: border-box;
    min-height: 56px;
    padding: 10px 24px;
    border-radius: 16px;
    background: #c4445b;
    color: #fff;
    box-shadow: none;
    font-size: 16px;
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
}
.pv2__cta, .swlp .swcta:not(.swcta--ghost), .fq-end .pv2__cta { display: flex; }
:is(.hero__cta--primary, .pv2__cta, .swcta:not(.swcta--ghost), .ms-final__cta, .lb__cta, .nl-cta):has(.hero__cta-note, .pv2__cta-note, .swcta__note, [data-desktop-note]) { min-height: 64px; }
:is(.hero__cta--primary, .pv2__cta, .swcta:not(.swcta--ghost), .ms-final__cta, .lb__cta, .nl-cta) :is(.hero__cta-label, .pv2__cta-label, .swcta__label, [data-store-download-text]) {
    font-size: 16px; font-weight: 800; letter-spacing: -0.02em; line-height: 1.2;
}
:is(.hero__cta--primary, .pv2__cta, .swcta:not(.swcta--ghost), .ms-final__cta, .lb__cta, .nl-cta) :is(.hero__cta-note, .pv2__cta-note, .swcta__note, [data-desktop-note]) {
    font-size: 12px; font-weight: 700; letter-spacing: 0; line-height: 1.3; color: #fff; opacity: 1;
}
.ms-final__cta, .lb__cta[data-store-download-cta], .nl-cta { min-width: 280px; }
@media (hover: hover) and (pointer: fine) {
    :is(.hero__cta--primary, .pv2__cta, .swlp .swcta:not(.swcta--ghost), .ms-final__cta, .lb__cta[data-store-download-cta], .nl-cta):hover { background: #b23a51; transform: none; }
}
:is(.hero__cta--primary, .pv2__cta, .swcta:not(.swcta--ghost), .ms-final__cta, .lb__cta, .nl-cta):active { transform: none; }
:is(.hero__cta--primary, .pv2__cta, .swcta:not(.swcta--ghost), .ms-final__cta, .lb__cta, .nl-cta):focus-visible { outline: 3px solid #c4445b; outline-offset: 3px; }
/* 하단 고정 바 */
.swlp .swbar__btn { border-radius: 12px; background: #c4445b; }
/* 모바일: 본문 큰 버튼은 화면 폭(좌우 여백 20) */
@media (max-width: 759px) {
    .ms-final__cta, .lb__cta[data-store-download-cta], .nl-cta, .hero__cta--primary { display: flex; width: 100%; max-width: none; min-width: 0; }
    .lb__cta-row { width: 100%; }
    .swlp .swcta:not(.swcta--ghost) { margin-inline: 6px; }
}
.swlp .swcta:not(.swcta--ghost):has(.swcta__note),
.fq-end .pv2__cta:has(.pv2__cta-note, [data-desktop-note]) { min-height: 64px; }
