/* romptn CTA Blocks - 共通ベース */
:root {
    /* === Color - Brand === */
    --romptn-cta-color-primary: #007AFF;
    --romptn-cta-color-primary-dark: #0066D6;
    --romptn-cta-color-primary-soft: #ECF1F6;

    /* === Color - CTA Action === */
    --romptn-cta-color-accent: #FF9500;
    --romptn-cta-color-accent-soft: #FFF4EB;
    --romptn-cta-color-accent-dark: #FF6B35;

    /* === Color - Text === */
    --romptn-cta-color-text: #1D1D1F;
    --romptn-cta-color-text-muted: #6E6E73;
    --romptn-cta-color-text-subtle: #444444;
    --romptn-cta-color-on-accent: #ffffff;

    /* === Color - Surface === */
    --romptn-cta-color-surface: #FFFFFF;
    --romptn-cta-color-surface-muted: #F5F5F7;
    --romptn-cta-color-surface-alt: #fafbff;
    --romptn-cta-color-border: rgba(0, 0, 0, 0.08);
    --romptn-cta-color-overlay: rgba(0, 0, 0, 0.6);

    /* === Spacing - Responsive (clamp) === */
    --romptn-cta-space-base: clamp(6px, calc(6px + 0.6vw), 12px);
    --romptn-cta-space-xxs: calc(var(--romptn-cta-space-base) * 0.25);
    --romptn-cta-space-xs: calc(var(--romptn-cta-space-base) * 0.5);
    --romptn-cta-space-sm: calc(var(--romptn-cta-space-base) * 0.75);
    --romptn-cta-space-md: var(--romptn-cta-space-base);
    --romptn-cta-space-lg: calc(var(--romptn-cta-space-base) * 1.5);
    --romptn-cta-space-xl: calc(var(--romptn-cta-space-base) * 2);

    /* === Typography - Responsive (clamp) === */
    --romptn-cta-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --romptn-cta-font-base: clamp(14px, calc(14px + 0.5vw), 16px);
    --romptn-cta-font-xs: calc(var(--romptn-cta-font-base) * 0.75);
    --romptn-cta-font-sm: calc(var(--romptn-cta-font-base) * 0.875);
    --romptn-cta-font-md: var(--romptn-cta-font-base);
    --romptn-cta-font-lg: calc(var(--romptn-cta-font-base) * 1.125);
    --romptn-cta-font-xl: calc(var(--romptn-cta-font-base) * 1.25);
    --romptn-cta-font-xxl: calc(var(--romptn-cta-font-base) * 1.5);

    /* === Decoration === */
    --romptn-cta-radius-card: 12px;
    --romptn-cta-radius-modal: 12px;
    --romptn-cta-radius-pill: 999px;
    --romptn-cta-radius-input: 8px;
    --romptn-cta-btn-radius: 980px;
    --romptn-cta-shadow-card: 0 12px 24px rgba(15, 23, 42, 0.08);
    --romptn-cta-shadow-modal: 0 20px 40px rgba(0, 0, 0, 0.25);
    --romptn-cta-btn-shadow: 0 2px 8px rgba(255, 149, 0, 0.25);

}

/* mania サイト用カラーパレット上書き（ダークパープル） */
.romptn-cta-scope--mania {
    --romptn-cta-color-primary: #9B4DFF;
    --romptn-cta-color-primary-dark: #B374FF;
    --romptn-cta-color-primary-soft: #1A0F28;
    --romptn-cta-color-accent: #00D4FF;
    --romptn-cta-color-accent-soft: #0E1B2E;
    --romptn-cta-color-accent-dark: #00B8E0;
    --romptn-cta-color-text: #FFFFFF;
    --romptn-cta-color-text-muted: #B0A0C0;
    --romptn-cta-color-border: rgba(155, 77, 255, 0.2);
    --romptn-cta-color-surface: #1A0F28;
    --romptn-cta-color-surface-muted: #0E0614;
    --romptn-cta-color-on-accent: #ffffff;
    --romptn-cta-shadow-modal: 0 20px 40px rgba(155, 77, 255, 0.25);
    --romptn-cta-btn-shadow: 0 0 20px rgba(155, 77, 255, 0.3);
}

.romptn-cta-scope {
    font-family: inherit;
    color: inherit;
    line-height: 1.6;
    font-size: var(--romptn-cta-font-md);
}

.romptn-cta-scope,
.romptn-cta-scope * {
    box-sizing: border-box;
}

.romptn-cta-scope p {
    margin: 0;
    font-size: inherit;
    line-height: inherit;
}

.romptn-cta-scope ul,
.romptn-cta-scope ol {
    margin: 0;
    padding-left: 0;
}

.romptn-cta-scope ul {
    list-style: none;
}

.romptn-cta-scope ol {
    list-style: decimal;
}

.romptn-cta-scope li {
    margin: 0;
    font-size: inherit;
    line-height: inherit;
}

.romptn-cta-scope h1,
.romptn-cta-scope h2,
.romptn-cta-scope h3,
.romptn-cta-scope h4,
.romptn-cta-scope h5,
.romptn-cta-scope h6 {
    margin: 0;
    font-size: inherit;
    font-weight: inherit;
}

.romptn-cta-scope img {
    max-width: 100%;
    height: auto;
    display: block;
}

/* v4 scope alias: .romptn-cta も v3 の .romptn-cta-scope と同じ変数を継承 */
.romptn-cta {
    font-family: inherit;
    color: inherit;
    line-height: 1.6;
    font-size: var(--romptn-cta-font-md);
}

.romptn-cta,
.romptn-cta * {
    box-sizing: border-box;
}

.romptn-cta p {
    margin: 0;
}

/* Cocoon theme resets — isolate CTA from theme cascade */
.romptn-cta a,
.romptn-cta a:visited {
    color: inherit;
    text-decoration: none;
}

.romptn-cta a:hover {
    color: inherit;
    text-decoration: none;
}

.romptn-cta h1, .romptn-cta h2, .romptn-cta h3,
.romptn-cta h4, .romptn-cta h5, .romptn-cta h6 {
    background: none;
    border: none;
    padding: 0;
}

/* v4 mania scope alias */
.romptn-cta--mania {
    --romptn-cta-color-primary: #9B4DFF;
    --romptn-cta-color-primary-dark: #B374FF;
    --romptn-cta-color-primary-soft: #1A0F28;
    --romptn-cta-color-accent: #00D4FF;
    --romptn-cta-color-accent-soft: #0E1B2E;
    --romptn-cta-color-accent-dark: #00B8E0;
    --romptn-cta-color-text: #FFFFFF;
    --romptn-cta-color-text-muted: #B0A0C0;
    --romptn-cta-color-border: rgba(155, 77, 255, 0.2);
    --romptn-cta-color-surface: #1A0F28;
    --romptn-cta-color-surface-muted: #0E0614;
    --romptn-cta-color-on-accent: #ffffff;
    --romptn-cta-shadow-modal: 0 20px 40px rgba(155, 77, 255, 0.25);
    --romptn-cta-btn-shadow: 0 0 20px rgba(155, 77, 255, 0.3);
}
