:root {
    color-scheme: light;
    --bcp-navy: #111c35;
    --bcp-navy-2: #172542;
    --bcp-gold: #d6aa32;
    --bcp-gold-strong: #c49416;
    --bcp-gold-soft: #fbf7ea;
    --bcp-gold-line: #e6ca73;
    --bcp-green: #0b9b76;
    --bcp-red: #c53d36;
    --bcp-bg: #f7f8fa;
    --bcp-card: #ffffff;
    --bcp-ink: #18243a;
    --bcp-muted: #687386;
    --bcp-line: #e4e7ec;
    --bcp-line-dark: #cdd3dc;
    --bcp-shadow: 0 12px 36px rgba(17, 28, 53, .07);
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
    margin: 0;
    background: var(--bcp-bg);
    color: var(--bcp-ink);
    font-family: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", "Noto Serif JP", serif;
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
}

button,
input,
select,
textarea { font-family: inherit; }

a { color: inherit; }

.bcp-page,
.page {
    width: min(100%, 780px);
    margin: 0 auto;
    padding: 20px 16px 64px;
}

.bcp-brand-hero,
.hero {
    margin: 0;
    padding: 26px 24px;
    border: 1px solid rgba(214, 170, 50, .18);
    border-radius: 22px;
    background:
        radial-gradient(circle at 88% 10%, rgba(214, 170, 50, .15), transparent 32%),
        linear-gradient(145deg, var(--bcp-navy), var(--bcp-navy-2));
    box-shadow: var(--bcp-shadow);
}

.bcp-brand-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 16px;
}

.bcp-wordmark {
    color: #fff;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .12em;
}

.bcp-brand-tag {
    padding: 5px 9px;
    border: 1px solid rgba(214, 170, 50, .45);
    border-radius: 999px;
    color: #f3d978;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .05em;
}

.eyebrow,
.bcp-eyebrow {
    margin: 0 0 8px;
    color: #f1cf67;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .09em;
}

.bcp-brand-hero h1,
.hero h1,
h1 {
    margin: 0;
    color: #fff;
    font-size: clamp(29px, 7vw, 43px);
    line-height: 1.2;
    letter-spacing: -.025em;
}

.bcp-brand-hero .lead,
.hero .lead,
.lead {
    margin: 13px 0 0;
    color: rgba(255, 255, 255, .76);
    font-size: 14px;
}

.bcp-gold-rule {
    height: 3px;
    width: 58px;
    margin-top: 18px;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--bcp-gold), #f2d56f);
}

.card,
.bcp-card {
    margin-top: 18px;
    padding: 22px;
    background: var(--bcp-card);
    border: 1px solid var(--bcp-line);
    border-radius: 18px;
    box-shadow: var(--bcp-shadow);
}

.section-title,
.bcp-section-title {
    margin: 0 0 6px;
    color: var(--bcp-navy);
    font-size: 21px;
    line-height: 1.35;
}

.section-note,
.bcp-section-note {
    margin: 0 0 18px;
    color: var(--bcp-muted);
    font-size: 13px;
}

.bcp-section-heading {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 6px;
}

.bcp-section-badge,
.step-no,
.field-no,
.scenario-no {
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: linear-gradient(145deg, #e6bd4c, var(--bcp-gold));
    color: var(--bcp-navy);
    font-size: 13px;
    font-weight: 950;
    box-shadow: inset 0 0 0 1px rgba(17, 28, 53, .07);
}

.field { margin-top: 18px; }
.field:first-of-type { margin-top: 0; }

.field-label-row {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.field-label-copy { min-width: 0; flex: 1; }

label {
    display: block;
    margin-bottom: 7px;
    color: var(--bcp-ink);
    font-weight: 850;
}

.hint {
    display: block;
    margin-top: 2px;
    color: var(--bcp-muted);
    font-size: 12px;
    font-weight: 400;
}

.money-input { position: relative; }

input[type="number"],
input[type="text"],
input[type="email"],
input[type="file"] {
    width: 100%;
    min-height: 54px;
    padding: 12px 14px;
    border: 1px solid var(--bcp-line-dark);
    border-radius: 12px;
    background: #fff;
    color: var(--bcp-ink);
    font-size: 17px;
    font-weight: 700;
    outline: none;
    transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}

input[type="number"] {
    padding-right: 56px;
    font-size: 20px;
}

input:focus {
    border-color: var(--bcp-gold-strong);
    box-shadow: 0 0 0 4px rgba(214, 170, 50, .15);
    background: #fffdf8;
}

.unit {
    position: absolute;
    top: 50%;
    right: 15px;
    transform: translateY(-50%);
    color: var(--bcp-muted);
    font-weight: 850;
}

.optional {
    margin-left: 6px;
    padding: 2px 7px;
    border-radius: 999px;
    background: var(--bcp-gold-soft);
    color: #82660e;
    font-size: 11px;
    font-weight: 800;
}

.error {
    margin-top: 5px;
    color: var(--bcp-red);
    font-size: 12px;
    font-weight: 750;
}

.submit,
.button,
.cta-primary {
    display: block;
    width: 100%;
    margin-top: 22px;
    padding: 15px 18px;
    border: 1px solid #c79a1a;
    border-radius: 13px;
    background: linear-gradient(180deg, #e3b940, var(--bcp-gold));
    color: var(--bcp-navy);
    font-size: 16px;
    font-weight: 950;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    box-shadow: 0 8px 18px rgba(214, 170, 50, .18);
}

.submit:hover,
.button:hover,
.cta-primary:hover { filter: brightness(.985); }

.button-secondary,
.cta-secondary {
    display: block;
    width: 100%;
    margin-top: 12px;
    padding: 14px 16px;
    border: 1px solid #98a2b3;
    border-radius: 12px;
    background: #fff;
    color: var(--bcp-navy);
    font-size: 15px;
    font-weight: 900;
    text-align: center;
    text-decoration: none;
}

.privacy {
    margin: 12px 0 0;
    color: var(--bcp-muted);
    font-size: 12px;
    text-align: center;
}

/* Main result */
.result-panel {
    margin-top: 18px;
    padding: 28px 22px 24px;
    border: 1px solid rgba(214, 170, 50, .25);
    border-radius: 20px;
    background:
        radial-gradient(circle at 80% 10%, rgba(214, 170, 50, .15), transparent 32%),
        linear-gradient(145deg, var(--bcp-navy), var(--bcp-navy-2));
    color: #fff;
    box-shadow: 0 16px 38px rgba(17, 28, 53, .15);
    text-align: center;
}

.result-label {
    margin: 0;
    color: #f1cf67;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .08em;
}

.result-question {
    margin: 8px 0 0;
    color: #fff;
    font-size: clamp(20px, 5vw, 28px);
    font-weight: 900;
    line-height: 1.35;
}

.result-main {
    margin: 6px 0 0;
    color: var(--bcp-gold);
    font-size: clamp(62px, 17vw, 92px);
    line-height: 1.02;
    font-weight: 950;
    letter-spacing: -.05em;
}

.result-main small {
    margin-left: 6px;
    color: #fff;
    font-size: 20px;
    letter-spacing: 0;
}

.result-caption {
    max-width: 570px;
    margin: 11px auto 0;
    color: rgba(255, 255, 255, .74);
    font-size: 13px;
}

.result-panel .method-note {
    margin-top: 16px;
    border-left-color: var(--bcp-gold);
    background: rgba(255, 255, 255, .08);
    color: rgba(255, 255, 255, .82);
}

.metric-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 18px;
}

.metric {
    padding: 17px;
    border: 1px solid var(--bcp-line);
    border-top: 3px solid var(--bcp-gold);
    border-radius: 14px;
    background: #fff;
}

.metric-name {
    color: var(--bcp-muted);
    font-size: 12px;
    font-weight: 850;
}

.metric-value {
    margin-top: 4px;
    color: var(--bcp-navy);
    font-size: 26px;
    font-weight: 950;
}

.metric-desc {
    margin-top: 4px;
    color: var(--bcp-muted);
    font-size: 11px;
}

.positive { color: var(--bcp-green) !important; }
.negative { color: var(--bcp-red) !important; }
.neutral { color: var(--bcp-navy) !important; }

/* Phase 3.10 */
.input-footnote {
    margin: 10px 0 0;
    color: var(--bcp-muted);
    font-size: 11px;
}
.bcp-input { padding-right: 14px !important; }
.bcp-input::placeholder { color: #b8bec8; opacity: 1; }

.phase310-indicators .bcp-five-grid { grid-template-columns: 1fr; }
.bcp-indicator-category {
    display: block;
    margin-bottom: 3px;
    color: var(--bcp-gold-strong);
    font-size: 11px;
    font-weight: 800;
}
.phase310-indicators .bcp-five-value { white-space: nowrap; font-variant-numeric: tabular-nums; }
.stress-test-section h2,
.action-section h2 { margin: 2px 0 4px; color: var(--bcp-navy); font-size: 24px; }
.stress-test-section > p { margin: 0; color: var(--bcp-muted); font-size: 13px; }
.stress-test-kicker { color: var(--bcp-gold-strong); font-size: 11px; font-weight: 900; letter-spacing: .08em; }
.academic-note { margin-top: 10px !important; font-size: 11px !important; }
.stress-panel { margin-top: 18px; }
.stress-panel h3 { margin: 0; color: var(--bcp-navy); font-size: 19px; }
.stress-panel p { margin: 5px 0 0; color: var(--bcp-muted); font-size: 13px; }
.stress-panel small { display: block; margin-top: 8px; color: var(--bcp-muted); font-size: 10px; }
.stress-chart { display: block; width: 100%; max-width: 720px; height: auto; margin: 16px auto 4px; overflow: visible; }
.stress-chart .stress-grid-line { stroke: #e8ebf0; stroke-width: 1; }
.stress-chart .stress-axis-line { stroke: #687386; stroke-width: 1.2; }
.stress-chart .stress-zero-line { stroke: #405477; stroke-width: 1.8; }
.stress-chart .stress-data-line { fill: none; stroke-width: 2.8; stroke-linecap: round; stroke-linejoin: round; }
.stress-chart .stress-data-point { stroke: #fff; stroke-width: 1.2; }
.stress-chart text { fill: #687386; font-family: inherit; font-size: 11px; }
.stress-chart .stress-legend-line { fill: none; stroke-width: 3; }
.stress-chart .stress-legend-text,
.stress-chart .stress-axis-title { fill: #111c35; font-size: 11px; }
.action-section ol { margin: 15px 0 0; padding-left: 25px; color: var(--bcp-ink); }
.action-section li { margin-top: 8px; padding-left: 4px; }
.measure-flow { display: block; margin-top: 20px; color: var(--bcp-navy); font-size: 18px; letter-spacing: .04em; }
.action-section p { margin: 7px 0 0; color: var(--bcp-muted); font-size: 13px; }
.deera-preview-brand { display: block; margin-bottom: 4px; color: var(--bcp-navy); font-size: 20px; font-weight: 900; letter-spacing: .12em; }
.academic-footer { margin: 22px 4px 0; color: var(--bcp-muted); font-size: 10px; line-height: 1.7; }

@media (max-width: 560px) {
    .phase310-indicators .bcp-five-card-top { display: block; }
    .phase310-indicators .bcp-five-value { display: block; margin: 12px 0 0 35px; font-size: 25px; }
    .stress-test-section, .action-section { padding: 18px; }
    .crisis-tabs { gap: 5px; }
    .crisis-tab { min-width: 0; padding: 9px 7px; font-size: 12px; }
}

/* 4 crisis scenarios */
.scenario-intro {
    margin-bottom: 14px;
    padding: 13px 14px;
    border-radius: 12px;
    background: var(--bcp-gold-soft);
    color: #59490f;
    font-size: 12px;
}

.scenario-grid {
    display: grid;
    gap: 12px;
}

.scenario-card {
    padding: 17px;
    border: 1px solid var(--bcp-line);
    border-radius: 15px;
    background: #fff;
}

.scenario-head {
    display: flex;
    align-items: flex-start;
    gap: 11px;
}

.scenario-copy { min-width: 0; flex: 1; }

.scenario-title {
    margin: 0;
    color: var(--bcp-navy);
    font-size: 17px;
    font-weight: 950;
}

.scenario-kind {
    margin-top: 2px;
    color: var(--bcp-muted);
    font-size: 11px;
}

.scenario-assumption {
    margin-top: 11px;
    padding: 9px 11px;
    border-left: 3px solid var(--bcp-gold);
    background: #fcfbf7;
    color: #475467;
    font-size: 12px;
}

.scenario-result {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    margin-top: 14px;
    padding-top: 13px;
    border-top: 1px solid var(--bcp-line);
}

.scenario-result-label {
    color: var(--bcp-muted);
    font-size: 11px;
    font-weight: 750;
}

.scenario-result-value {
    margin-top: 2px;
    color: var(--bcp-navy);
    font-size: 24px;
    font-weight: 950;
    white-space: nowrap;
}

.scenario-impact {
    text-align: right;
    color: var(--bcp-muted);
    font-size: 11px;
}

.scenario-impact strong {
    display: block;
    margin-top: 2px;
    font-size: 15px;
}

.method-note {
    margin-top: 14px;
    padding: 14px;
    border-left: 4px solid var(--bcp-gold-line);
    background: #f8fafc;
    color: #475467;
    font-size: 12px;
}

/* Conversion CTA */
.cta-card {
    border-color: var(--bcp-gold-line);
    background: linear-gradient(180deg, #fffdf8, var(--bcp-gold-soft));
}

.cta-kicker {
    margin: 0 0 4px;
    color: #96730e;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .07em;
}

.cta-card h2 {
    margin: 0;
    color: var(--bcp-navy);
    font-size: 23px;
    line-height: 1.35;
}

.cta-card p {
    margin: 8px 0 0;
    color: #46546d;
    font-size: 14px;
}

.cta-emphasis {
    margin-top: 12px;
    padding: 11px 12px;
    border-radius: 11px;
    background: #fff;
    color: var(--bcp-navy);
    font-size: 13px;
    font-weight: 850;
}

.again,
.back {
    display: inline-block;
    margin-top: 15px;
    color: #8b6c10;
    font-size: 13px;
    font-weight: 850;
    text-decoration: none;
}

/* Trial flow */
.notice {
    padding: 14px 16px;
    border: 1px solid var(--bcp-gold-line);
    border-radius: 14px;
    background: var(--bcp-gold-soft);
    color: #5d4b11;
    font-size: 13px;
}

.success {
    padding: 14px 16px;
    border: 1px solid #b8e6d8;
    border-radius: 14px;
    background: #effbf7;
    color: #08785b;
    font-size: 14px;
    font-weight: 850;
}

.steps {
    display: grid;
    gap: 11px;
    margin-top: 16px;
}

.step {
    display: flex;
    gap: 12px;
    align-items: flex-start;
}

.meta {
    margin: 14px 0 0;
    padding: 14px;
    border-radius: 12px;
    background: #f8fafc;
    color: #475467;
    font-size: 13px;
}

.code-url {
    display: block;
    overflow-wrap: anywhere;
    margin-top: 8px;
    padding: 10px 12px;
    border-radius: 10px;
    background: var(--bcp-navy);
    color: #fff;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 12px;
}

.upload-trust {
    display: grid;
    gap: 8px;
    margin-top: 14px;
    color: var(--bcp-muted);
    font-size: 12px;
}

.upload-trust div::before {
    content: "✓";
    margin-right: 7px;
    color: var(--bcp-green);
    font-weight: 950;
}

@media (max-width: 560px) {
    .bcp-page,
    .page { padding: 12px 10px 48px; }

    .bcp-brand-hero,
    .hero {
        padding: 22px 18px;
        border-radius: 18px;
    }

    .card,
    .bcp-card { padding: 18px; border-radius: 16px; }

    .metric-grid { grid-template-columns: 1fr; }

    .scenario-result {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
    }

    .scenario-impact { text-align: left; }

    .result-main { font-size: clamp(64px, 22vw, 86px); }
}

/* Phase 3.2: first-impression enhancements */
.result-days {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 14px;
    padding: 6px 12px;
    border: 1px solid rgba(214, 170, 50, .38);
    border-radius: 999px;
    background: rgba(214, 170, 50, .08);
    color: #f3d978;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .03em;
}

.takeaway-card {
    border-color: rgba(214, 170, 50, .35);
    background: linear-gradient(180deg, #fff, #fffdf8);
}

.takeaway-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: 16px;
}

.takeaway {
    min-width: 0;
    padding: 15px;
    border: 1px solid var(--bcp-line);
    border-radius: 14px;
    background: #fff;
}

.takeaway-label {
    min-height: 36px;
    color: var(--bcp-muted);
    font-size: 11px;
    font-weight: 800;
    line-height: 1.45;
}

.takeaway-value {
    margin-top: 6px;
    color: var(--bcp-navy);
    font-size: 20px;
    font-weight: 950;
    line-height: 1.25;
}

.takeaway-sub {
    margin-top: 5px;
    color: var(--bcp-muted);
    font-size: 10px;
    font-weight: 750;
}

.scenario-impact-rate {
    display: block;
    margin-top: 2px;
    font-size: 10px;
    font-weight: 850;
}

@media (max-width: 560px) {
    .takeaway-grid { grid-template-columns: 1fr; }
    .takeaway-label { min-height: 0; }
    .takeaway-value { font-size: 22px; }
}


/* Phase 3.3: simplified conference UX */
.bcp-brand-hero-simple {
    padding: 28px 26px;
}

.bcp-brand-hero-simple h1 {
    font-size: clamp(30px, 6.8vw, 44px);
}

.crisis-question-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px 18px;
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid rgba(255, 255, 255, .14);
}

.crisis-question-grid p {
    position: relative;
    margin: 0;
    padding-left: 14px;
    color: rgba(255, 255, 255, .9);
    font-size: 13px;
    font-weight: 750;
    line-height: 1.5;
}

.crisis-question-grid p::before {
    content: "";
    position: absolute;
    top: .65em;
    left: 0;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--bcp-gold);
}

.bcp-brand-hero-simple .lead {
    margin-top: 18px;
    color: #f3d978;
    font-weight: 800;
}

.input-card .section-title {
    margin-bottom: 3px;
}

.input-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.compact-field {
    margin-top: 0;
    padding: 14px;
    border: 1px solid var(--bcp-line);
    border-radius: 14px;
    background: #fff;
}

.compact-field .field-label-row {
    gap: 9px;
}

.compact-field .field-no {
    width: 25px;
    height: 25px;
    font-size: 11px;
}

.compact-field label {
    margin-bottom: 6px;
    font-size: 14px;
}

.compact-field .hint {
    font-size: 10px;
}

.compact-field input[type="number"] {
    min-height: 48px;
    font-size: 18px;
}

.optional-details,
.scenario-notes,
.detail-metrics {
    margin-top: 14px;
}

.optional-details {
    padding: 12px 14px;
    border: 1px dashed var(--bcp-line-dark);
    border-radius: 12px;
    background: #fbfcfd;
}

.optional-details summary,
.scenario-notes summary,
.detail-metrics > summary {
    cursor: pointer;
    color: var(--bcp-navy);
    font-size: 13px;
    font-weight: 900;
}

.optional-field-inner {
    margin-top: 12px;
}

.result-panel {
    padding: 28px 22px;
}

.result-question {
    margin-top: 0;
}

.result-main {
    margin-top: 8px;
}

.result-credit-line {
    display: inline-block;
    margin-top: 12px;
    padding: 6px 11px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .08);
    color: rgba(255, 255, 255, .84);
    font-size: 12px;
}

.result-credit-line strong {
    color: #f3d978;
}

.crisis-card-section .section-note {
    margin-bottom: 14px;
}

.simple-scenario-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.simple-scenario-card {
    display: flex;
    flex-direction: column;
}

.before-after-row {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 10px;
    margin-top: 14px;
    padding: 14px;
    border-radius: 12px;
    background: #f8fafc;
}

.comparison-point {
    min-width: 0;
}

.comparison-point span {
    display: block;
    color: var(--bcp-muted);
    font-size: 10px;
    font-weight: 800;
}

.comparison-point strong {
    display: block;
    margin-top: 2px;
    color: var(--bcp-navy);
    font-size: 19px;
    font-weight: 950;
    white-space: nowrap;
}

.comparison-point.after {
    text-align: right;
}

.comparison-arrow {
    color: var(--bcp-gold-strong);
    font-size: 22px;
    font-weight: 900;
}

.scenario-loss {
    margin-top: 10px;
    font-size: 17px;
    font-weight: 950;
    text-align: right;
}

.scenario-loss span {
    font-size: 11px;
    font-weight: 850;
}

.scenario-notes {
    padding: 11px 12px;
    border-top: 1px solid var(--bcp-line);
}

.scenario-notes > div {
    margin-top: 9px;
    color: var(--bcp-muted);
    font-size: 11px;
}

.detail-metrics {
    padding: 17px 20px;
}

.detail-metrics > summary {
    font-size: 14px;
}

.plain-metrics {
    display: grid;
    gap: 8px;
    margin-top: 14px;
}

.plain-metric {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 4px;
    padding: 10px 12px;
    border-radius: 10px;
    background: #f8fafc;
    color: #475467;
    font-size: 12px;
}

.plain-metric strong {
    color: var(--bcp-navy);
    font-size: 17px;
}

.compact-cta-card h2 {
    font-size: 22px;
}

.compact-cta-card .cta-emphasis {
    padding: 9px 11px;
    font-size: 12px;
}

@media (max-width: 680px) {
    .crisis-question-grid,
    .input-grid,
    .simple-scenario-grid {
        grid-template-columns: 1fr;
    }

    .bcp-brand-hero-simple {
        padding: 22px 18px;
    }

    .crisis-question-grid {
        gap: 5px;
        margin-top: 16px;
        padding-top: 14px;
    }

    .compact-field {
        padding: 12px;
    }

    .before-after-row {
        padding: 12px;
    }

    .comparison-point strong {
        font-size: 17px;
    }
}

/* ========================================================================
   Phase 3.4 — story-based visual results
   ======================================================================== */

.story-card { overflow: hidden; }

.story-heading {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 18px;
}

.story-number {
    display: inline-grid;
    place-items: center;
    width: 32px;
    height: 32px;
    flex: 0 0 32px;
    border-radius: 50%;
    background: var(--bcp-gold);
    color: var(--bcp-navy);
    font-weight: 950;
    font-size: 13px;
}

.story-heading h2 {
    margin: 0;
    color: var(--bcp-navy);
    font-size: 21px;
    line-height: 1.35;
}

.story-heading p {
    margin: 3px 0 0;
    color: var(--bcp-muted);
    font-size: 12px;
}

/* Runway */
.result-hero { padding-bottom: 26px; }

.cash-runway {
    max-width: 620px;
    margin: 22px auto 0;
    padding: 16px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 14px;
    background: rgba(255,255,255,.06);
    text-align: left;
}

.runway-point {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: baseline;
    color: rgba(255,255,255,.72);
    font-size: 12px;
}

.runway-point strong {
    color: #fff;
    font-size: 14px;
    text-align: right;
}

.runway-end strong { color: var(--bcp-gold); }

.runway-line {
    position: relative;
    height: 7px;
    margin: 7px 0 12px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(255,255,255,.12);
}

.runway-line span {
    display: block;
    height: 100%;
    min-width: 2px;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--bcp-gold), #f1d46d);
}

/* 100-yen breakdown */
.money-100-grid { display: grid; gap: 13px; }
.money-row-head {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 5px;
    color: #475467;
    font-size: 13px;
}
.money-row-head strong { color: var(--bcp-navy); font-size: 14px; }
.money-track {
    height: 10px;
    overflow: hidden;
    border-radius: 999px;
    background: #edf0f4;
}
.money-track span {
    display: block;
    height: 100%;
    min-width: 2px;
    border-radius: inherit;
    background: linear-gradient(90deg, #253654, var(--bcp-navy));
}
.money-row-margin { padding-top: 4px; border-top: 1px solid var(--bcp-line); }
.money-row-margin .margin-bar { background: linear-gradient(90deg, #1aa77c, var(--bcp-green)); }
.story-punchline {
    margin-top: 18px;
    padding: 15px 16px;
    border-radius: 13px;
    font-size: 14px;
    font-weight: 800;
    text-align: center;
}
.story-punchline strong { font-size: 22px; }
.punchline-positive { background: #ecf8f3; color: #116a50; }
.punchline-negative { background: #fff1f0; color: #9f2d2a; }
.empty-note { color: var(--bcp-muted); font-size: 13px; }

/* Tolerance gauges */
.tolerance-grid { display: grid; gap: 18px; }
.tolerance-item { padding: 14px; border: 1px solid var(--bcp-line); border-radius: 13px; background: #fbfcfd; }
.tolerance-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.tolerance-head span { color: #475467; font-size: 13px; font-weight: 750; }
.tolerance-head strong { color: var(--bcp-navy); font-size: 20px; white-space: nowrap; }
.tolerance-track {
    position: relative;
    height: 12px;
    margin-top: 10px;
    overflow: hidden;
    border-radius: 999px;
    background: linear-gradient(90deg, #edf0f4 0 92%, #d7dce4 92% 100%);
}
.tolerance-track span {
    display: block;
    height: 100%;
    min-width: 2px;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--bcp-gold), #f1d46d);
}
.tolerance-scale { display: flex; justify-content: space-between; margin-top: 5px; color: #98a2b3; font-size: 10px; }

/* Crisis tabs and scenario bars */
.crisis-tabs {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 6px;
    margin-bottom: 16px;
    padding: 5px;
    border-radius: 13px;
    background: #f0f2f5;
}
.crisis-tab {
    min-height: 42px;
    padding: 8px 6px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: #667085;
    font: inherit;
    font-size: 12px;
    font-weight: 850;
    cursor: pointer;
}
.crisis-tab.is-active { background: var(--bcp-navy); color: #fff; box-shadow: 0 4px 10px rgba(17,28,53,.12); }
.crisis-panel[hidden] { display: none !important; }
.crisis-panel { padding: 16px; border: 1px solid var(--bcp-line); border-radius: 15px; background: #fff; }
.crisis-panel-title { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; margin-bottom: 16px; }
.crisis-panel-title h3 { margin: 0; color: var(--bcp-navy); font-size: 17px; }
.crisis-panel-title span { padding: 4px 8px; border-radius: 999px; background: var(--bcp-gold-soft); color: #82660e; font-size: 10px; font-weight: 850; white-space: nowrap; }
.scenario-bars { display: grid; gap: 12px; }
.scenario-bar-row { display: grid; grid-template-columns: 78px minmax(80px, 1fr) minmax(92px, auto); gap: 9px; align-items: center; }
.scenario-bar-label { color: #667085; font-size: 11px; font-weight: 800; }
.scenario-bar-row strong { color: var(--bcp-navy); font-size: 12px; text-align: right; white-space: nowrap; }
.scenario-bar-track { height: 12px; overflow: hidden; border-radius: 999px; background: #edf0f4; }
.scenario-bar-track span { display: block; height: 100%; min-width: 2px; border-radius: inherit; background: #60708b; }
.scenario-bar-row.light .scenario-bar-track span { background: #8c9ab0; }
.scenario-bar-row.standard .scenario-bar-track span { background: var(--bcp-gold); }
.scenario-bar-row.severe .scenario-bar-track span { background: #bd665e; }
.scenario-bar-row.current .scenario-bar-track span { background: var(--bcp-navy); }
.crisis-highlight { margin-top: 16px; padding: 12px 13px; border-radius: 11px; background: #f8f4e8; color: #5e4c17; font-size: 12px; text-align: center; }
.crisis-highlight strong { font-size: 16px; }
.scenario-notes { margin-top: 12px; }
.scenario-notes summary { color: #667085; font-size: 11px; cursor: pointer; }
.scenario-notes div { margin-top: 8px; color: #667085; font-size: 11px; line-height: 1.7; }

/* Locked preview CTA */
.locked-preview-section { border-color: var(--bcp-gold-line); background: linear-gradient(180deg, #fffdf9, #f9f4e5); }
.locked-preview-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.locked-preview-card {
    position: relative;
    min-width: 0;
    padding: 14px;
    border: 1px solid #e8dfc7;
    border-radius: 13px;
    background: rgba(255,255,255,.78);
    overflow: hidden;
}
.locked-preview-card::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(255,255,255,.08), rgba(249,244,229,.42));
    pointer-events: none;
}
.locked-preview-card h3 { position: relative; z-index: 1; margin: 10px 0 5px; color: var(--bcp-navy); font-size: 13px; }
.locked-preview-card p { position: relative; z-index: 1; margin: 0; color: #667085; font-size: 10px; line-height: 1.55; }
.lock-mark { position: relative; z-index: 2; display: inline-block; padding: 3px 6px; border-radius: 999px; background: var(--bcp-navy); color: #fff; font-size: 8px; font-weight: 900; letter-spacing: .08em; }
.mini-line { position: relative; z-index: 1; display: flex; align-items: end; gap: 4px; height: 33px; margin-top: 8px; }
.mini-line span { width: 20%; border-radius: 3px 3px 0 0; background: #bdc5d0; }
.mini-line span:nth-child(1){height:28px}.mini-line span:nth-child(2){height:24px}.mini-line span:nth-child(3){height:20px}.mini-line span:nth-child(4){height:17px}.mini-line span:nth-child(5){height:13px}
.mini-controls { position: relative; z-index: 1; display: grid; gap: 5px; margin-top: 10px; }
.mini-controls i { display: block; height: 7px; border-radius: 999px; background: #ccd2dc; }
.mini-controls i:nth-child(2){width:72%}.mini-controls i:nth-child(3){width:48%}
.mini-bars { position: relative; z-index: 1; display: flex; align-items: end; gap: 6px; height: 32px; margin-top: 8px; }
.mini-bars i { display: block; width: 25%; border-radius: 3px 3px 0 0; background: #bdc5d0; }
.mini-bars i:nth-child(1){height:15px}.mini-bars i:nth-child(2){height:30px}.mini-bars i:nth-child(3){height:21px}
.unlock-copy { margin-top: 16px; text-align: center; }
.unlock-copy strong { display: block; color: var(--bcp-navy); font-size: 18px; }
.unlock-copy span { display: block; margin-top: 4px; color: #667085; font-size: 12px; }

@media (max-width: 620px) {
    .locked-preview-grid { grid-template-columns: 1fr; }
    .scenario-bar-row { grid-template-columns: 66px minmax(70px, 1fr) minmax(84px, auto); gap: 7px; }
    .scenario-bar-row strong { font-size: 11px; }
    .crisis-tabs { grid-template-columns: repeat(2, 1fr); }
    .cash-runway { padding: 13px; }
}


/* ========================================================================
   Phase 3.5 — Deera full-product preview
   ======================================================================== */
.deera-preview-section {
    border-color: var(--bcp-gold-line);
    background: linear-gradient(180deg, #fffdfa 0%, #f8f5eb 100%);
}

.deera-preview-intro {
    max-width: 640px;
    margin: 0 auto 22px;
    text-align: center;
}

.deera-preview-kicker {
    display: inline-block;
    margin-bottom: 8px;
    color: #8b6b12;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .04em;
}

.deera-preview-intro h2 {
    margin: 0;
    color: var(--bcp-navy);
    font-size: clamp(25px, 5vw, 35px);
    line-height: 1.35;
    letter-spacing: -.02em;
}

.deera-preview-intro p {
    margin: 10px auto 0;
    color: var(--bcp-muted);
    font-size: 12px;
    line-height: 1.75;
}

.deera-preview-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.deera-feature-card {
    min-width: 0;
    padding: 15px;
    border: 1px solid #e4e7ec;
    border-top: 3px solid var(--bcp-gold);
    border-radius: 14px;
    background: rgba(255, 255, 255, .92);
}

.deera-feature-head {
    display: flex;
    align-items: center;
    gap: 9px;
}

.deera-feature-no {
    color: var(--bcp-gold-strong);
    font-size: 10px;
    font-weight: 950;
    letter-spacing: .06em;
}

.deera-feature-card h3 {
    margin: 0;
    color: var(--bcp-navy);
    font-size: 14px;
    line-height: 1.35;
}

.deera-feature-card p {
    margin: 10px 0 0;
    color: #667085;
    font-size: 10px;
    line-height: 1.6;
}

.preview-score {
    display: grid;
    grid-template-columns: 62px 1fr;
    gap: 12px;
    align-items: center;
    margin-top: 14px;
}

.preview-score-ring {
    display: grid;
    place-items: center;
    width: 58px;
    height: 58px;
    border: 7px solid #e4c555;
    border-right-color: #e8ecf2;
    border-radius: 50%;
    background: #fff;
}

.preview-score-ring strong { color: var(--bcp-navy); font-size: 11px; line-height: 1; }
.preview-score-ring span { color: #98a2b3; font-size: 7px; font-weight: 800; }
.preview-score-lines { display: grid; gap: 7px; }
.preview-score-lines i { height: 7px; border-radius: 999px; background: #dfe4eb; }
.preview-score-lines i:nth-child(1) { width: 88%; background: #20a47a; }
.preview-score-lines i:nth-child(2) { width: 67%; background: #e0b83e; }
.preview-score-lines i:nth-child(3) { width: 78%; background: #8794aa; }

.preview-trend {
    display: flex;
    align-items: end;
    gap: 7px;
    height: 66px;
    margin-top: 14px;
    padding: 8px 8px 0;
    border-bottom: 1px solid #e4e7ec;
}
.preview-trend span {
    flex: 1;
    min-width: 8px;
    border-radius: 4px 4px 0 0;
    background: linear-gradient(180deg, #e6c34a, #c99d20);
}

.preview-benchmark {
    display: grid;
    gap: 8px;
    margin-top: 15px;
}
.preview-benchmark div {
    display: grid;
    grid-template-columns: 34px 1fr;
    gap: 7px;
    align-items: center;
}
.preview-benchmark span { color: #667085; font-size: 9px; font-weight: 850; }
.preview-benchmark i {
    display: block;
    height: 9px;
    border-radius: 999px;
    background: var(--bcp-navy);
}
.preview-benchmark div:nth-child(2) i { background: #aab4c4; }
.preview-benchmark div:nth-child(3) i { background: #20a47a; }

.preview-cashflow {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    align-items: end;
    gap: 10px;
    height: 68px;
    margin-top: 12px;
    padding: 0 10px 7px;
    border-bottom: 1px solid #e4e7ec;
}
.preview-cashflow span { display: block; border-radius: 5px 5px 0 0; }
.preview-cashflow .in { height: 82%; background: #20a47a; }
.preview-cashflow .out { height: 63%; background: #8794aa; }
.preview-cashflow .cash { height: 42%; background: #e0b83e; }

.preview-bcp-chips {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 7px;
    margin-top: 15px;
}
.preview-bcp-chips span {
    padding: 9px 6px;
    border: 1px solid #dde2ea;
    border-radius: 9px;
    background: #f8fafc;
    color: var(--bcp-navy);
    font-size: 9px;
    font-weight: 900;
    text-align: center;
}

.preview-actions {
    display: grid;
    gap: 8px;
    margin-top: 14px;
}
.preview-actions div {
    display: grid;
    grid-template-columns: 22px 1fr;
    gap: 8px;
    align-items: center;
}
.preview-actions b {
    display: grid;
    place-items: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--bcp-gold-soft);
    color: #80620e;
    font-size: 9px;
}
.preview-actions i { display: block; height: 8px; border-radius: 999px; background: #dfe4eb; }
.preview-actions div:nth-child(1) i { width: 88%; background: #c96b62; }
.preview-actions div:nth-child(2) i { width: 72%; background: #e0b83e; }
.preview-actions div:nth-child(3) i { width: 60%; background: #8794aa; }

.deera-preview-message {
    margin-top: 18px;
    padding: 16px;
    border-radius: 13px;
    background: var(--bcp-navy);
    text-align: center;
}
.deera-preview-message strong {
    display: block;
    color: #fff;
    font-size: 16px;
    line-height: 1.5;
}
.deera-preview-message span {
    display: block;
    margin-top: 4px;
    color: rgba(255,255,255,.72);
    font-size: 11px;
}

.deera-preview-flow {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 8px;
    margin: 14px 0;
    color: #667085;
    font-size: 10px;
    font-weight: 800;
}
.deera-preview-flow span,
.deera-preview-flow strong {
    padding: 7px 9px;
    border-radius: 999px;
    background: #fff;
    border: 1px solid #e4e7ec;
}
.deera-preview-flow strong {
    border-color: var(--bcp-gold-line);
    background: #fff9e8;
    color: var(--bcp-navy);
}
.deera-preview-flow b { color: var(--bcp-gold-strong); }

.deera-cta { margin-top: 4px; }

@media (max-width: 620px) {
    .deera-preview-grid { grid-template-columns: 1fr; }
    .deera-feature-card { padding: 14px; }
    .deera-preview-intro h2 { font-size: 26px; }
}

/* Phase 3.6: 結果を「院長が一目で分かる言葉」に整理 */
.monthly-balance-card,
.tolerance-card,
.crisis-simulator-card,
.result-mail-card {
    position: relative;
}

.monthly-balance-flow {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1.15fr);
    gap: 10px;
    align-items: stretch;
}

.monthly-balance-step,
.monthly-balance-result {
    display: flex;
    min-height: 96px;
    flex-direction: column;
    justify-content: center;
    gap: 8px;
    padding: 16px;
    border-radius: 14px;
}

.monthly-balance-step {
    border: 1px solid var(--bcp-line);
    background: #fbfcfd;
}

.monthly-balance-step span,
.monthly-balance-result span {
    color: #667085;
    font-size: 12px;
    font-weight: 800;
}

.monthly-balance-step strong {
    color: var(--bcp-navy);
    font-size: clamp(23px, 4vw, 31px);
    line-height: 1;
}

.monthly-balance-result {
    border: 1px solid rgba(16, 169, 120, .24);
    background: #effaf6;
}

.monthly-balance-result.is-negative {
    border-color: rgba(200, 58, 53, .22);
    background: #fff3f2;
}

.monthly-balance-result strong {
    color: var(--bcp-green);
    font-size: clamp(25px, 4.5vw, 34px);
    line-height: 1.05;
}

.monthly-balance-result.is-negative strong { color: var(--bcp-red); }
.monthly-balance-arrow {
    align-self: center;
    color: var(--bcp-gold-strong);
    font-size: 30px;
    font-weight: 900;
}

.break-even-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.break-even-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 8px;
    padding: 18px;
    border: 1px solid var(--bcp-line);
    border-radius: 15px;
    background: #fbfcfd;
}

.break-even-label {
    color: var(--bcp-navy);
    font-size: 14px;
    font-weight: 900;
}

.break-even-value {
    color: var(--bcp-red);
    font-size: clamp(25px, 4vw, 32px);
    line-height: 1.1;
}

.break-even-sub {
    color: #667085;
    font-size: 12px;
    font-weight: 750;
}

.break-even-card small {
    color: #7d8796;
    font-size: 10px;
    line-height: 1.6;
}

.break-even-line {
    position: relative;
    height: 8px;
    margin: 5px 0 2px;
    border-radius: 999px;
    background: #e8ebf0;
}

.break-even-line span {
    display: block;
    width: 68%;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--bcp-green), var(--bcp-gold));
}

.break-even-line i {
    position: absolute;
    top: 50%;
    left: 68%;
    width: 2px;
    height: 18px;
    transform: translate(-1px, -50%);
    background: var(--bcp-red);
}

.result-mail-card {
    overflow: hidden;
    border-top: 4px solid var(--bcp-gold);
    background: linear-gradient(145deg, #fff, #fbfaf5);
}

.result-mail-intro { text-align: center; }
.result-mail-kicker {
    display: inline-block;
    margin-bottom: 6px;
    color: var(--bcp-gold-strong);
    font-size: 10px;
    font-weight: 950;
    letter-spacing: .06em;
}
.result-mail-intro h2 {
    margin: 0;
    color: var(--bcp-navy);
    font-size: clamp(23px, 4vw, 31px);
    line-height: 1.35;
}
.result-mail-intro p {
    max-width: 660px;
    margin: 8px auto 0;
    color: #667085;
    font-size: 12px;
    line-height: 1.75;
}

.result-mail-form {
    max-width: 680px;
    margin: 20px auto 0;
}
.result-mail-email-label {
    display: block;
    margin-bottom: 7px;
    color: var(--bcp-navy);
    font-size: 12px;
    font-weight: 900;
}
.result-mail-email-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 9px;
}
.result-mail-email-row input {
    width: 100%;
    min-width: 0;
    padding: 13px 14px;
    border: 1px solid #cfd5de;
    border-radius: 11px;
    background: #fff;
    color: var(--bcp-text);
    font: inherit;
    font-size: 16px;
}
.result-mail-email-row input:focus {
    border-color: var(--bcp-gold);
    outline: 3px solid rgba(214, 170, 50, .14);
}
.result-mail-email-row button {
    padding: 0 18px;
    border: 0;
    border-radius: 11px;
    background: var(--bcp-navy);
    color: #fff;
    font: inherit;
    font-size: 13px;
    font-weight: 900;
    cursor: pointer;
}
.result-mail-email-row button:hover { opacity: .94; }
.result-mail-error { margin-top: 7px; }

.marketing-consent {
    display: flex;
    gap: 9px;
    align-items: flex-start;
    margin-top: 14px;
    padding: 12px 13px;
    border: 1px solid #e6e1cd;
    border-radius: 11px;
    background: #fffdf6;
    color: #4f5968;
    font-size: 11px;
    line-height: 1.55;
    cursor: pointer;
}
.marketing-consent input {
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
    margin-top: 1px;
    accent-color: var(--bcp-navy);
}
.marketing-consent em {
    color: #8b94a3;
    font-style: normal;
}
.result-mail-privacy {
    margin: 9px 0 0;
    color: #8b94a3;
    font-size: 9px;
    line-height: 1.6;
    text-align: center;
}

.result-mail-success {
    display: flex;
    max-width: 680px;
    gap: 14px;
    align-items: center;
    margin: 0 auto;
    padding: 18px;
    border: 1px solid rgba(16, 169, 120, .22);
    border-radius: 14px;
    background: #effaf6;
}
.result-mail-success-icon {
    display: grid;
    flex: 0 0 46px;
    place-items: center;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: var(--bcp-green);
    color: #fff;
    font-size: 24px;
    font-weight: 950;
}
.result-mail-success h2 {
    margin: 0;
    color: var(--bcp-navy);
    font-size: 19px;
}
.result-mail-success p {
    margin: 4px 0 0;
    color: #667085;
    font-size: 11px;
    line-height: 1.6;
}

@media (max-width: 720px) {
    .monthly-balance-flow {
        grid-template-columns: 1fr;
        gap: 8px;
    }
    .monthly-balance-arrow {
        justify-self: center;
        line-height: 1;
        transform: rotate(90deg);
    }
    .monthly-balance-step,
    .monthly-balance-result { min-height: 0; }
    .break-even-grid { grid-template-columns: 1fr; }
    .result-mail-email-row { grid-template-columns: 1fr; }
    .result-mail-email-row button { min-height: 48px; }
}
.break-even-alert {
    display: grid;
    gap: 7px;
    padding: 18px;
    border: 1px solid rgba(200, 58, 53, .2);
    border-radius: 14px;
    background: #fff3f2;
    text-align: center;
}
.break-even-alert span { color: #7d8796; font-size: 11px; font-weight: 800; }
.break-even-alert strong { color: var(--bcp-red); font-size: 20px; }
.break-even-alert small { color: #7d8796; font-size: 10px; line-height: 1.6; }
\n\n

/* ========================================================================
   Phase 3.7 — 財務BCP 5つの指標
   ======================================================================== */
.bcp-five-section {
    border: 1px solid #eadfbe;
    background: linear-gradient(180deg, #fffdf8 0%, #ffffff 100%);
}
.bcp-five-heading {
    margin-bottom: 18px;
}
.bcp-five-heading > span {
    display: inline-block;
    color: #8b6b12;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .08em;
}
.bcp-five-heading h2 {
    margin: 4px 0 4px;
    color: var(--bcp-navy);
    font-size: 26px;
}
.bcp-five-heading p {
    margin: 0;
    color: var(--bcp-muted);
    font-size: 13px;
    line-height: 1.7;
}
.bcp-five-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}
.bcp-five-card {
    padding: 18px;
    border: 1px solid #e7eaf0;
    border-radius: 16px;
    background: #ffffff;
    box-shadow: 0 6px 18px rgba(16, 24, 40, .04);
}
.bcp-five-card-wide {
    grid-column: 1 / -1;
}
.bcp-five-card-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}
.bcp-five-title-group {
    display: flex;
    gap: 12px;
    min-width: 0;
}
.bcp-five-no {
    display: grid;
    flex: 0 0 34px;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #d9b348;
    color: #ffffff;
    font-size: 10px;
    font-weight: 900;
    box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .08);
}
.bcp-five-copy h3 {
    margin: 0;
    color: var(--bcp-navy);
    font-size: 18px;
    line-height: 1.45;
}
.bcp-five-copy p {
    margin: 6px 0 0;
    color: #667085;
    font-size: 13px;
    line-height: 1.7;
}
.bcp-five-value {
    flex: 0 0 auto;
    align-self: center;
    color: var(--bcp-navy);
    font-size: 32px;
    font-weight: 950;
    line-height: 1;
    white-space: nowrap;
    letter-spacing: -.02em;
}
.bcp-five-value.positive {
    color: var(--bcp-green);
}
.bcp-five-value.negative {
    color: var(--bcp-red);
}
.bcp-five-notes {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid #eaecf0;
}
.bcp-five-notes summary {
    cursor: pointer;
    color: #667085;
    font-size: 12px;
    font-weight: 800;
}
.bcp-five-notes p {
    margin: 10px 0 0;
    color: #667085;
    font-size: 12px;
    line-height: 1.8;
}
@media (max-width: 900px) {
    .bcp-five-grid {
        grid-template-columns: 1fr;
    }
    .bcp-five-card-wide {
        grid-column: auto;
    }
}
@media (max-width: 620px) {
    .bcp-five-card {
        padding: 15px;
    }
    .bcp-five-card-top {
        flex-direction: column;
        gap: 12px;
    }
    .bcp-five-title-group {
        gap: 10px;
    }
    .bcp-five-no {
        width: 30px;
        height: 30px;
        flex-basis: 30px;
        font-size: 9px;
    }
    .bcp-five-copy h3 {
        font-size: 16px;
    }
    .bcp-five-copy p {
        font-size: 12px;
    }
    .bcp-five-value {
        font-size: 28px;
    }
}


/* =========================================================
   2026-08-27 5指標 視認性改善オーバーライド
   ========================================================= */
#bcp-five-indicators .bcp-five-grid {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
}

#bcp-five-indicators .bcp-five-card,
#bcp-five-indicators .bcp-five-card-wide {
    grid-column: auto !important;
    min-height: auto !important;
    padding: 18px 20px !important;
}

#bcp-five-indicators .bcp-five-card-top {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: 18px !important;
}

#bcp-five-indicators .bcp-five-title-group {
    display: flex !important;
    align-items: flex-start !important;
    gap: 12px !important;
    min-width: 0 !important;
}

#bcp-five-indicators .bcp-five-copy {
    min-width: 0 !important;
}

#bcp-five-indicators .bcp-five-copy h3 {
    margin: 0 0 4px !important;
    font-size: 18px !important;
    line-height: 1.45 !important;
    word-break: keep-all !important;
    overflow-wrap: anywhere !important;
    writing-mode: horizontal-tb !important;
}

#bcp-five-indicators .bcp-five-copy p {
    margin: 0 !important;
    font-size: 13px !important;
    line-height: 1.65 !important;
    color: #667085 !important;
    word-break: keep-all !important;
    overflow-wrap: anywhere !important;
    writing-mode: horizontal-tb !important;
}

#bcp-five-indicators .bcp-five-no {
    flex: 0 0 34px !important;
    width: 34px !important;
    height: 34px !important;
    display: grid !important;
    place-items: center !important;
}

#bcp-five-indicators .bcp-five-value {
    font-size: 22px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    text-align: right !important;
    align-self: center !important;
}

@media (max-width: 768px) {
    #bcp-five-indicators .bcp-five-card-top {
        grid-template-columns: 1fr !important;
        align-items: start !important;
        gap: 12px !important;
    }

    #bcp-five-indicators .bcp-five-value {
        text-align: left !important;
        font-size: 24px !important;
    }
}

/* PHASE 3.8 MOBILE POLISH START */
/* 学会QR利用を想定し、スマホで「診断→メール→Deera」まで読みやすく・押しやすくする。 */
@media (max-width: 620px) {
    .bcp-page,
    .page {
        padding: 10px 10px 40px !important;
    }

    .card,
    .bcp-card {
        margin-top: 12px !important;
        padding: 16px !important;
        border-radius: 15px !important;
    }

    .result-panel {
        margin-top: 12px !important;
        padding: 22px 14px 18px !important;
        border-radius: 17px !important;
    }
    .result-question {
        font-size: 19px !important;
    }
    .result-main {
        font-size: clamp(62px, 20vw, 78px) !important;
    }

    .story-heading {
        gap: 10px !important;
    }
    .story-heading h2 {
        font-size: 19px !important;
        line-height: 1.45 !important;
    }
    .story-heading p {
        margin-top: 2px !important;
        font-size: 11px !important;
        line-height: 1.55 !important;
    }

    .monthly-balance-step,
    .monthly-balance-result {
        padding: 13px 14px !important;
    }
    .monthly-balance-arrow {
        font-size: 23px !important;
    }

    .break-even-card {
        padding: 15px !important;
    }
    .break-even-value {
        font-size: 27px !important;
    }
    .break-even-card small {
        font-size: 11px !important;
    }

    .crisis-tabs {
        gap: 6px !important;
    }
    .crisis-tab {
        min-height: 46px !important;
        padding: 9px 6px !important;
        font-size: 12px !important;
    }
    .crisis-panel {
        padding: 13px !important;
    }
    .crisis-panel-title h3 {
        font-size: 15px !important;
        line-height: 1.5 !important;
    }

    /* 財務BCP 5指標：1行カードを維持し、数値は説明の下に大きく表示 */
    #bcp-five-indicators .bcp-five-heading h2 {
        font-size: 22px !important;
    }
    #bcp-five-indicators .bcp-five-heading p {
        font-size: 11px !important;
        line-height: 1.65 !important;
    }
    #bcp-five-indicators .bcp-five-card,
    #bcp-five-indicators .bcp-five-card-wide {
        padding: 13px !important;
    }
    #bcp-five-indicators .bcp-five-copy h3 {
        font-size: 15px !important;
        line-height: 1.45 !important;
    }
    #bcp-five-indicators .bcp-five-copy p {
        font-size: 11px !important;
        line-height: 1.55 !important;
    }
    #bcp-five-indicators .bcp-five-value {
        font-size: 25px !important;
    }

    /* 結果メール：タップ領域を大きく、任意同意を読みやすく */
    .result-mail-card {
        border-top-width: 3px !important;
    }
    .result-mail-intro h2 {
        font-size: 22px !important;
        line-height: 1.4 !important;
    }
    .result-mail-intro p {
        font-size: 11px !important;
        line-height: 1.65 !important;
    }
    .result-mail-form {
        margin-top: 16px !important;
    }
    .result-mail-email-row input,
    .result-mail-email-row button {
        min-height: 54px !important;
    }
    .result-mail-email-row button {
        font-size: 14px !important;
    }
    .marketing-consent {
        gap: 11px !important;
        align-items: center !important;
        padding: 14px !important;
        font-size: 12px !important;
        line-height: 1.6 !important;
    }
    .marketing-consent input {
        width: 22px !important;
        height: 22px !important;
        margin-top: 0 !important;
    }
    .result-mail-privacy {
        font-size: 10px !important;
    }

    /* Deera：スマホでは説明文を削り、見出し＋図で価値を伝える */
    .deera-preview-section {
        padding: 16px !important;
    }
    .deera-preview-intro {
        margin-bottom: 14px !important;
    }
    .deera-preview-intro h2 {
        font-size: 24px !important;
        line-height: 1.4 !important;
    }
    .deera-preview-intro p {
        font-size: 11px !important;
        line-height: 1.6 !important;
    }
    .deera-preview-grid {
        gap: 9px !important;
    }
    .deera-feature-card {
        padding: 12px !important;
    }
    .deera-feature-card h3 {
        font-size: 14px !important;
    }
    .deera-feature-card > p {
        display: none !important;
    }
    .deera-preview-message {
        padding: 14px 12px !important;
    }
    .deera-preview-message strong {
        font-size: 14px !important;
        line-height: 1.55 !important;
    }
    .deera-preview-message span {
        font-size: 10px !important;
    }
    .deera-preview-flow {
        gap: 5px !important;
        margin: 12px 0 !important;
        font-size: 9px !important;
    }
    .deera-preview-flow span,
    .deera-preview-flow strong {
        padding: 6px 7px !important;
    }
    .deera-preview-flow b {
        font-size: 11px !important;
    }
    .deera-cta,
    .deera-preview-section .cta-secondary {
        min-height: 54px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 14px !important;
        font-size: 14px !important;
    }
}
/* PHASE 3.8 MOBILE POLISH END */

/* ==========================================================
   財務BCP簡易診断 v2
   5つの質問として見せる入力UI
   ========================================================== */

.question-stack {
    display: grid;
    gap: 18px;
    margin-top: 18px;
}

.question-block {
    border: 1px solid #e3e7ed;
    border-radius: 16px;
    padding: 20px;
    background: #fff;
}

.question-head {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 16px;
}

.question-no {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    border-radius: 50%;
    background: #111c35;
    color: #fff;
    font-size: 14px;
    font-weight: 900;
}

.question-head h3 {
    margin: 0;
    color: #18243a;
    font-size: 18px;
    line-height: 1.4;
}

.question-head p {
    margin: 4px 0 0;
    color: #69758a;
    font-size: 12px;
    line-height: 1.7;
}

.question-fields {
    display: grid;
    gap: 14px;
}

.question-fields-1 {
    grid-template-columns: minmax(0, 1fr);
}

.question-fields-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.question-block .field {
    margin: 0;
    padding: 14px;
    border-radius: 12px;
    background: #f8f9fb;
}

.question-block .field label {
    display: block;
    color: #18243a;
    font-size: 14px;
    font-weight: 800;
    line-height: 1.5;
}

.question-block .field .hint {
    display: block;
    margin-top: 4px;
    color: #7b8798;
    font-size: 11px;
    font-weight: 500;
    line-height: 1.5;
}

.question-block .money-input {
    margin-top: 10px;
}

.question-block .bcp-input {
    width: 100%;
    box-sizing: border-box;
}

.question-block .optional-field {
    border: 1px dashed #c9d1dc;
    background: #fbfcfd;
}

@media (max-width: 720px) {
    .question-block {
        padding: 16px;
    }

    .question-fields-2 {
        grid-template-columns: 1fr;
    }

    .question-head h3 {
        font-size: 17px;
    }
}

/* ==========================================================
   財務BCP 5指標レーダー
   ========================================================== */

.bcp-radar-panel {
    margin: 18px 0 22px;
    padding: 18px;
    border: 1px solid #e3e7ed;
    border-radius: 16px;
    background: #fbfcfd;
}

.bcp-radar-heading h3 {
    margin: 0;
    color: #18243a;
    font-size: 18px;
}

.bcp-radar-heading p {
    margin: 4px 0 0;
    color: #69758a;
    font-size: 12px;
}

.bcp-radar-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
    gap: 20px;
    align-items: center;
    margin-top: 16px;
}

.bcp-radar-canvas {
    min-height: 300px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #edf0f4;
    border-radius: 14px;
    background: #fff;
}

.bcp-radar-svg {
    display: block;
    width: 100%;
    max-width: 360px;
    height: auto;
}

.bcp-radar-unavailable {
    padding: 30px;
    color: #69758a;
    font-size: 13px;
    text-align: center;
}

.bcp-radar-values {
    display: grid;
    gap: 8px;
}

.bcp-radar-value-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border: 1px solid #edf0f4;
    border-radius: 11px;
    background: #fff;
}

.bcp-radar-value-row strong {
    display: block;
    color: #18243a;
    font-size: 13px;
}

.bcp-radar-value-row small {
    display: block;
    margin-top: 2px;
    color: #7b8798;
    font-size: 10px;
}

.bcp-radar-value-row > span {
    flex: 0 0 auto;
    color: #18243a;
    font-size: 18px;
    font-weight: 900;
    font-variant-numeric: tabular-nums;
}

.bcp-radar-note {
    margin: 14px 0 0;
    padding: 10px 12px;
    border-radius: 10px;
    background: #f2f4f7;
    color: #69758a;
    font-size: 10px;
    line-height: 1.7;
}


/* ==========================================================
   新3か月ストレステスト
   ========================================================== */

.stress-test-v2 {
    overflow: hidden;
}

.stress-v2-table-wrap {
    margin-top: 16px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.stress-v2-table {
    width: 100%;
    min-width: 680px;
    border-collapse: collapse;
    color: #18243a;
    font-size: 12px;
}

.stress-v2-table th {
    padding: 10px 8px;
    border-bottom: 1px solid #d8dee8;
    background: #f7f8fa;
    font-weight: 800;
    text-align: center;
}

.stress-v2-table th:first-child {
    text-align: left;
}

.stress-v2-table td {
    padding: 12px 8px;
    border-bottom: 1px solid #edf0f4;
    text-align: center;
    font-weight: 700;
    white-space: nowrap;
}

.stress-v2-table td:first-child {
    min-width: 190px;
    text-align: left;
    white-space: normal;
}

.stress-v2-table td strong {
    display: block;
    font-size: 13px;
}

.stress-v2-table td small {
    display: block;
    margin-top: 3px;
    color: #7b8798;
    font-size: 10px;
    line-height: 1.5;
    font-weight: 500;
}

.stress-v2-table .stress-negative {
    color: #b42318;
}

.stress-v2-note {
    margin-top: 14px;
    padding: 12px 14px;
    border-radius: 10px;
    background: #f7f8fa;
}

.stress-v2-note strong {
    font-size: 11px;
}

.stress-v2-note p {
    margin: 4px 0 0;
    color: #69758a;
    font-size: 10px;
    line-height: 1.7;
}

@media (max-width: 720px) {
    .bcp-radar-layout {
        grid-template-columns: 1fr;
    }

    .bcp-radar-canvas {
        min-height: 270px;
    }

    .bcp-radar-svg {
        max-width: 320px;
    }

    .bcp-radar-value-row > span {
        font-size: 17px;
    }
}

/* ==========================================================
   学会QR版：冒頭スマホ表示調整
   ========================================================== */

.bcp-hero-title-line {
    display: inline;
}

.bcp-unit-notice {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 12px 0 18px;
    padding: 10px 14px;
    border: 1px solid #d6aa32;
    border-radius: 10px;
    background: #fffaf0;
    color: #18243a;
}

.bcp-unit-label {
    padding: 3px 7px;
    border-radius: 5px;
    background: #111c35;
    color: #ffffff;
    font-size: 11px;
    font-weight: 800;
    white-space: nowrap;
}

.bcp-unit-notice strong {
    color: #111c35;
    font-size: 20px;
    line-height: 1;
    white-space: nowrap;
}

.bcp-unit-copy {
    font-size: 12px;
    line-height: 1.5;
    color: #566176;
}

@media (max-width: 600px) {
    .bcp-hero-title-line {
        display: block;
        white-space: nowrap;
    }

    h1 .bcp-hero-title-line {
        font-size: clamp(16px, 4.55vw, 19px);
        line-height: 1.55;
        letter-spacing: -0.02em;
    }

    .bcp-unit-notice {
        flex-wrap: wrap;
        gap: 6px 8px;
        padding: 10px 12px;
    }

    .bcp-unit-copy {
        flex-basis: 100%;
        font-size: 11px;
    }
}

/* ==========================================================
   学会QR版：スマホタイトル最終調整
   ========================================================== */

@media (max-width: 600px) {
    h1 .bcp-hero-title-line {
        display: block;
        width: max-content;
        max-width: none;
        white-space: nowrap;
        font-size: clamp(13px, 3.8vw, 16px);
        line-height: 1.55;
        letter-spacing: -0.035em;
    }
}

@media (max-width: 360px) {
    h1 .bcp-hero-title-line {
        font-size: 13px;
        letter-spacing: -0.045em;
    }
}

/* ==========================================================
   学会QR版：入力画面 最終調整
   ========================================================== */

/*
 * タイトルはPCでも大きくしすぎない。
 * 1行目・2行目の途中では絶対に改行しない。
 */
.bcp-brand-hero.bcp-brand-hero-simple h1 {
    font-size: 28px !important;
    line-height: 1.45 !important;
    letter-spacing: 0 !important;
}

.bcp-brand-hero.bcp-brand-hero-simple h1 .bcp-hero-title-line {
    display: block !important;
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
    font-size: inherit !important;
    line-height: inherit !important;
}

/*
 * 単位は必要だが、主役にはしない。
 */
.bcp-unit-simple {
    margin: 6px 0 18px;
    color: #69758a;
    font-size: 12px;
    line-height: 1.6;
    font-weight: 500;
}

/*
 * 以前の強い単位表示CSSが残っていても
 * 新表示には影響させない。
 */
.bcp-unit-simple strong {
    color: inherit;
    font-size: inherit;
}

@media (max-width: 600px) {
    .bcp-brand-hero.bcp-brand-hero-simple {
        padding-left: 18px;
        padding-right: 18px;
    }

    .bcp-brand-hero.bcp-brand-hero-simple h1 {
        font-size: 15px !important;
        line-height: 1.55 !important;
    }

    .bcp-brand-hero.bcp-brand-hero-simple h1 .bcp-hero-title-line {
        white-space: nowrap !important;
    }

    .bcp-unit-simple {
        margin: 4px 0 14px;
        font-size: 11px;
    }
}

@media (max-width: 360px) {
    .bcp-brand-hero.bcp-brand-hero-simple h1 {
        font-size: 14px !important;
    }
}

/* ==========================================================
   財務BCP簡易診断：数値入力スピンボタン非表示
   type="number" は維持し、上下矢印のみ隠す
   ========================================================== */

/* Chrome / Edge / Safari */
.bcp-input[type="number"]::-webkit-outer-spin-button,
.bcp-input[type="number"]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Firefox */
.bcp-input[type="number"] {
    -moz-appearance: textfield;
    appearance: textfield;
}

/* ==========================================================
   3か月ストレステスト折れ線グラフ
   ========================================================== */

.stress-v2-chart-card {
    margin-top: 18px;
    padding: 16px;
    border: 1px solid #e3e7ed;
    border-radius: 14px;
    background: #ffffff;
}

.stress-v2-chart-card h3 {
    margin: 0 0 12px;
    color: #18243a;
    font-size: 15px;
}

.stress-v2-chart-scroll {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.stress-v2-chart-svg {
    display: block;
    width: 100%;
    min-width: 620px;
    height: auto;
}

.stress-v2-chart-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
    margin-top: 10px;
    color: #566176;
    font-size: 10px;
}

.stress-v2-chart-legend span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.stress-v2-chart-legend i {
    display: inline-block;
    width: 16px;
    height: 3px;
    border-radius: 999px;
}

.deera-development-note {
    margin-top: 14px;
    color: #566176;
    font-size: 12px;
    line-height: 1.8;
}

@media (max-width: 600px) {
    .stress-v2-chart-card {
        padding: 12px;
    }

    .stress-v2-chart-svg {
        min-width: 580px;
    }
}

/* ==========================================================
   3か月ストレス推移
   ========================================================== */

.stress-v2-chart-card {
    margin-top: 18px;
    padding: 16px;
    border: 1px solid #e3e7ed;
    border-radius: 14px;
    background: #fff;
}

.stress-v2-chart-card h3 {
    margin: 0 0 12px;
    color: #18243a;
    font-size: 15px;
}

.stress-v2-chart-scroll {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.stress-v2-chart-svg {
    display: block;
    width: 100%;
    min-width: 620px;
    height: auto;
}

.stress-v2-chart-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
    margin-top: 10px;
    color: #566176;
    font-size: 10px;
}

.stress-v2-chart-legend span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.stress-v2-chart-legend i {
    display: inline-block;
    width: 16px;
    height: 3px;
    border-radius: 999px;
}


/* ==========================================================
   D-STEER 紹介
   ========================================================== */

.dsteer-showcase-section {
    overflow: hidden;
}

.dsteer-showcase-copy {
    text-align: center;
}

.dsteer-showcase-brand {
    display: inline-block;
    color: #d6aa32;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .12em;
}

.dsteer-showcase-copy h2 {
    margin: 8px 0 0;
    color: #18243a;
    font-size: 28px;
    line-height: 1.45;
}

.dsteer-showcase-copy p {
    max-width: 760px;
    margin: 12px auto 0;
    color: #566176;
    font-size: 13px;
    line-height: 1.9;
}

.dsteer-showcase-main,
.dsteer-showcase-sub {
    position: relative;
    border: 1px solid #dfe4eb;
    border-radius: 16px;
    background: #f7f8fa;
    overflow: hidden;
}

.dsteer-showcase-main {
    margin-top: 22px;
    padding: 8px;
}

.dsteer-showcase-main img,
.dsteer-showcase-sub img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 10px;
}

.dsteer-showcase-subgrid {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 14px;
}

.dsteer-showcase-sub {
    padding: 7px;
}

.dsteer-screen-label {
    position: absolute;
    left: 14px;
    bottom: 14px;
    padding: 7px 11px;
    border-radius: 999px;
    background: rgba(255,255,255,.94);
    color: #18243a;
    box-shadow:
        0 2px 10px
        rgba(17,28,53,.12);
    font-size: 11px;
    font-weight: 900;
}

.dsteer-feature-chips {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 16px;
}

.dsteer-feature-chips span {
    padding: 7px 11px;
    border-radius: 999px;
    background: #f2f5f9;
    color: #31445e;
    font-size: 11px;
    font-weight: 700;
}

.dsteer-interest-box {
    margin-top: 20px;
    padding: 20px;
    border-radius: 16px;
    background: #111c35;
    color: #fff;
    text-align: center;
}

.dsteer-interest-box strong {
    display: block;
    font-size: 17px;
}

.dsteer-interest-box p {
    margin: 7px 0 0;
    color: #dce4ef;
    font-size: 12px;
    line-height: 1.75;
}

.dsteer-interest-button {
    display: inline-block;
    margin-top: 14px;
}

@media (max-width: 600px) {
    .stress-v2-chart-card {
        padding: 12px;
    }

    .stress-v2-chart-svg {
        min-width: 580px;
    }

    .dsteer-showcase-copy h2 {
        font-size: 20px;
    }

    .dsteer-showcase-copy p {
        font-size: 12px;
        text-align: left;
    }

    .dsteer-showcase-subgrid {
        grid-template-columns: 1fr;
    }

    .dsteer-screen-label {
        left: 10px;
        bottom: 10px;
        padding: 6px 9px;
        font-size: 10px;
    }
}

/* ==========================================================
   D-STEER 紹介 最終CTA調整
   ========================================================== */

.dsteer-feature-chips {
    gap: 10px;
    margin-top: 18px;
}

.dsteer-feature-chips span {
    padding: 9px 15px;
    font-size: 13px;
    font-weight: 800;
}

.dsteer-interest-box {
    margin-top: 26px;
    padding: 30px 26px;
}

.dsteer-interest-box strong {
    font-size: 21px;
    line-height: 1.5;
}

.dsteer-interest-box p {
    max-width: 620px;
    margin: 10px auto 0;
    font-size: 13px;
    line-height: 1.8;
}

.dsteer-interest-button {
    display: block;
    width: min(100%, 480px);
    box-sizing: border-box;
    margin: 22px auto 0;
    padding: 17px 26px !important;
    border-radius: 13px !important;
    font-size: 17px !important;
    font-weight: 900 !important;
    text-align: center;
    box-shadow: 0 8px 22px rgba(214, 170, 50, .24);
    transition:
        transform .15s ease,
        box-shadow .15s ease;
}

.dsteer-interest-button:hover {
    transform: translateY(-2px);
    box-shadow: 0 11px 28px rgba(214, 170, 50, .32);
}

@media (max-width: 600px) {
    .dsteer-feature-chips span {
        padding: 8px 12px;
        font-size: 12px;
    }

    .dsteer-interest-box {
        padding: 24px 18px;
    }

    .dsteer-interest-box strong {
        font-size: 18px;
    }

    .dsteer-interest-button {
        width: 100%;
        padding: 16px 14px !important;
        font-size: 16px !important;
    }
}

/* ==========================================================
   財務BCP 診断コース選択
   ========================================================== */

.bcp-course-selector {
    padding: 26px;
}

.bcp-course-heading {
    text-align: center;
}

.bcp-course-heading h2 {
    margin: 0;
    color: #18243a;
    font-size: 25px;
}

.bcp-course-heading p {
    margin: 7px 0 0;
    color: #69758a;
    font-size: 13px;
}

.bcp-course-grid {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin-top: 22px;
}

.bcp-course-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 310px;
    padding: 24px 22px;
    border: 2px solid #e0e5ec;
    border-radius: 18px;
    background: #fff;
    color: #18243a;
    text-align: left;
    cursor: pointer;
}

.bcp-course-card:hover,
.bcp-course-card.is-selected {
    border-color: #d6aa32;
    box-shadow:
        0 10px 26px
        rgba(17, 28, 53, .10);
}

.bcp-course-card-recommended {
    border-color: #d6aa32;
    background:
        linear-gradient(
            180deg,
            #fffdf7 0%,
            #fff 48%
        );
}

.bcp-course-badge {
    align-self: flex-start;
    padding: 5px 10px;
    border-radius: 999px;
    background: #d6aa32;
    color: #111c35;
    font-size: 10px;
    font-weight: 900;
}

.bcp-course-badge-detail {
    background: #eef2f7;
    color: #31445e;
}

.bcp-course-card > strong {
    margin-top: 14px;
    font-size: 19px;
    line-height: 1.5;
}

.bcp-course-card > p {
    margin: 9px 0 0;
    color: #566176;
    font-size: 12px;
    line-height: 1.8;
}

.bcp-course-items {
    margin-top: 16px;
    padding: 12px 13px;
    border-radius: 11px;
    background: #f7f8fa;
}

.bcp-course-items > span {
    display: block;
    font-size: 10px;
    font-weight: 900;
}

.bcp-course-items small {
    display: block;
    margin-top: 5px;
    color: #69758a;
    font-size: 10px;
    line-height: 1.7;
}

.bcp-course-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    margin-top: auto;
    padding-top: 18px;
}

.bcp-course-footer > span {
    color: #69758a;
    font-size: 11px;
    font-weight: 700;
}

.bcp-course-footer em {
    padding: 9px 12px;
    border-radius: 9px;
    background: #111c35;
    color: #fff;
    font-size: 11px;
    font-style: normal;
    font-weight: 800;
}

.bcp-course-card-recommended
.bcp-course-footer em {
    background: #d6aa32;
    color: #111c35;
}

.bcp-course-form {
    display: none;
}

.bcp-course-form.is-visible {
    display: block;
}

@media (max-width: 700px) {
    .bcp-course-selector {
        padding: 18px;
    }

    .bcp-course-heading h2 {
        font-size: 21px;
    }

    .bcp-course-grid {
        grid-template-columns: 1fr;
    }

    .bcp-course-card {
        min-height: 0;
        padding: 20px 18px;
    }

    .bcp-course-card > strong {
        font-size: 17px;
    }
}

/* ==========================================================
   財務BCP クイック5指標
   ========================================================== */

.quick-diagnosis-result {
    overflow: hidden;
}

.quick-bcp-heading > span {
    color: #d6aa32;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .1em;
}

.quick-bcp-heading h2 {
    margin: 5px 0 0;
    color: #18243a;
    font-size: 24px;
}

.quick-bcp-heading p {
    margin: 7px 0 0;
    color: #69758a;
    font-size: 12px;
    line-height: 1.7;
}

.quick-bcp-five-grid {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 20px;
}

.quick-bcp-five-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    min-height: 145px;
    padding: 18px;
    border: 1px solid #e3e7ed;
    border-radius: 14px;
    background: #f9fafb;
}

.quick-bcp-five-card-wide {
    grid-column: 1 / -1;
}

.quick-bcp-five-top {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.quick-bcp-five-no {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    border-radius: 50%;
    background: #d6aa32;
    color: #fff;
    font-size: 10px;
    font-weight: 900;
}

.quick-bcp-five-card small {
    color: #c38f0d;
    font-size: 10px;
    font-weight: 800;
}

.quick-bcp-five-card h3 {
    margin: 3px 0 0;
    color: #18243a;
    font-size: 15px;
    line-height: 1.5;
}

.quick-bcp-five-card p {
    margin: 4px 0 0;
    color: #7b8798;
    font-size: 10px;
    line-height: 1.6;
}

.quick-bcp-five-card > strong {
    flex: 0 0 auto;
    color: #18243a;
    font-size: 26px;
    font-weight: 900;
    white-space: nowrap;
}

.quick-bcp-five-card
.quick-bcp-negative {
    color: #b42318;
}

.quick-bcp-note {
    margin-top: 14px;
    padding: 12px 14px;
    border-radius: 10px;
    background: #f3f5f8;
}

.quick-bcp-note strong,
.quick-bcp-note p {
    color: #69758a;
    font-size: 10px;
}

.quick-bcp-note p {
    margin: 4px 0 0;
    line-height: 1.7;
}

.quick-upgrade-box {
    margin-top: 18px;
    padding: 22px;
    border-radius: 15px;
    background: #111c35;
    color: #fff;
    text-align: center;
}

.quick-upgrade-kicker {
    display: block;
    color: #d6aa32;
    font-size: 10px;
    font-weight: 900;
}

.quick-upgrade-box > strong {
    display: block;
    margin-top: 7px;
    font-size: 18px;
    line-height: 1.6;
}

.quick-upgrade-box p {
    max-width: 660px;
    margin: 8px auto 0;
    color: #dce4ef;
    font-size: 11px;
    line-height: 1.8;
}

.quick-upgrade-button {
    margin-top: 16px;
    padding: 14px 28px;
    border: 0;
    border-radius: 10px;
    background: #d6aa32;
    color: #111c35;
    font-size: 14px;
    font-weight: 900;
    cursor: pointer;
}


@media (max-width: 700px) {

    .quick-bcp-heading h2 {
        font-size: 21px;
    }

    .quick-bcp-five-grid {
        grid-template-columns: 1fr;
    }

    .quick-bcp-five-card-wide {
        grid-column: auto;
    }

    .quick-bcp-five-card {
        min-height: 0;
        padding: 15px;
    }

    .quick-bcp-five-card > strong {
        font-size: 22px;
    }

    .quick-upgrade-box {
        padding: 19px 15px;
    }

    .quick-upgrade-button {
        width: 100%;
    }
}

/* ==========================================================
   クイック5指標レーダー
   ========================================================== */

.quick-bcp-radar-panel {
    margin-top: 18px;
    margin-bottom: 20px;
}

.quick-bcp-radar-panel
.bcp-radar-heading h3 {
    font-size: 17px;
}

@media (max-width: 700px) {
    .quick-bcp-radar-panel {
        margin-top: 15px;
        margin-bottom: 16px;
    }
}

/* ==========================================================
   D-STEER 完成案内選択フィードバック
   ========================================================== */

.dsteer-interest-confirmation {
    margin: 0 0 18px;
    padding: 14px 16px;
    border: 1px solid #d6aa32;
    border-radius: 12px;
    background: #fffaf0;
    color: #18243a;
}

.dsteer-interest-confirmation strong {
    display: block;
    font-size: 13px;
    line-height: 1.6;
}

.dsteer-interest-confirmation p {
    margin: 5px 0 0;
    color: #69758a;
    font-size: 11px;
    line-height: 1.7;
}

#result-mail.dsteer-interest-active {
    border-color: #d6aa32;
    box-shadow:
        0 0 0 3px rgba(214, 170, 50, .10),
        0 10px 28px rgba(17, 28, 53, .08);
}

.dsteer-interest-button.is-selected {
    background: #fff !important;
    color: #111c35 !important;
    border: 2px solid #d6aa32;
}

@media (max-width: 600px) {
    .dsteer-interest-confirmation {
        padding: 12px 13px;
    }
}
