.report-feature {
    --report-blue: #176fc2;
    --report-deep: #173d60;
    --report-ink: #294b68;
    --report-muted: #667f93;
    --report-line: #d7e6f1;
    color: var(--report-ink);
    overflow: hidden;
}
.report-feature .container { width: min(1170px, calc(100% - 48px)); margin-right: auto; margin-left: auto; }
.report-feature .fi-kicker { color: var(--report-blue); }
.report-heading { max-width: 760px; margin-bottom: 46px; }
.report-heading--center { margin-right: auto; margin-left: auto; text-align: center; }
.report-heading h2, .monthly-perspective h2, .workrate-example h2, .workrate-actions h2, .report-data-note h2, .report-cta h2 { margin: 12px 0 18px; color: var(--report-deep); }
.report-heading > p:last-child, .monthly-perspective p, .workrate-example p, .report-data-note p, .report-cta p { color: var(--report-muted); line-height: 1.95; }

.report-hero { padding: 72px 0 82px; background: linear-gradient(135deg, #f5faff, #e9f5ff); }
.report-hero__grid { display: grid; grid-template-columns: .88fr 1.12fr; align-items: center; gap: 42px; }
.report-hero__copy h1 { margin: 14px 0 22px; color: var(--report-deep); font-size: clamp(36px, 3.2vw, 46px); }
.report-hero__copy > p:not(.fi-kicker) { color: #536f86; font-size: 17px; line-height: 1.95; }
.report-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 17px; margin-top: 28px; }
.report-hero__visual { position: relative; margin: 0; overflow: hidden; border: 1px solid #cbdfea; border-radius: 23px; background: #dceefd; box-shadow: 0 24px 58px rgba(23, 65, 103, .16); }
.report-hero__visual img { display: block; width: 100%; height: auto; }
.report-hero__visual figcaption { position: absolute; right: 14px; bottom: 14px; padding: 8px 12px; border-radius: 7px; color: #fff; background: rgba(20, 58, 92, .9); font-size: 11px; font-weight: 800; }

.report-intro { padding: 100px 0; background: #fff; }
.monthly-report-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.monthly-report-card { padding: 32px; border: 1px solid var(--report-line); border-radius: 20px; background: #f8fbfe; }
.monthly-report-card__label { color: #78a8d2; font-size: 11px; font-weight: 900; letter-spacing: .17em; }
.monthly-report-card h3 { margin: 10px 0 14px; color: var(--report-deep); font-size: 27px; }
.monthly-report-card > p { min-height: 91px; color: var(--report-muted); line-height: 1.85; }
.monthly-report-card .fi-text-link { display: inline-block; margin-top: 20px; color: var(--report-blue) !important; }
.monthly-mini-chart { position: relative; display: flex; align-items: end; gap: 10px; height: 128px; margin-top: 26px; padding: 17px 20px 0; border-bottom: 2px solid #aec8da; border-left: 2px solid #aec8da; background-image: linear-gradient(#dce9f2 1px, transparent 1px); background-size: 100% 32px; }
.monthly-mini-chart--bars i { flex: 1; height: 35%; border-radius: 4px 4px 0 0; background: #57a0d7; }
.monthly-mini-chart--bars i:nth-child(2) { height: 58%; }
.monthly-mini-chart--bars i:nth-child(3) { height: 48%; }
.monthly-mini-chart--bars i:nth-child(4) { height: 76%; background: #68bca1; }
.monthly-mini-chart--bars i:nth-child(5) { height: 64%; background: #68bca1; }
.monthly-mini-chart--bars i:nth-child(6) { height: 89%; background: #68bca1; }
.monthly-mini-chart--line { align-items: center; justify-content: space-around; }
.monthly-mini-chart--line::before { position: absolute; left: 9%; right: 8%; top: 51%; height: 3px; content: ""; transform: rotate(-8deg); background: #2e84d2; }
.monthly-mini-chart--line i { z-index: 1; width: 12px; height: 12px; border: 3px solid #fff; border-radius: 50%; background: #2e84d2; box-shadow: 0 0 0 3px #9ac7ed; }
.monthly-mini-chart--line i:nth-child(1) { transform: translateY(25px); }
.monthly-mini-chart--line i:nth-child(2) { transform: translateY(12px); }
.monthly-mini-chart--line i:nth-child(3) { transform: translateY(21px); }
.monthly-mini-chart--line i:nth-child(4) { transform: translateY(-8px); }
.monthly-mini-chart--line i:nth-child(5) { transform: translateY(-1px); }
.monthly-mini-chart--line i:nth-child(6) { transform: translateY(-24px); }

.monthly-perspective { padding: 96px 0; background: #eef6fc; }
.monthly-perspective__grid { display: grid; grid-template-columns: .82fr 1.18fr; align-items: center; gap: 64px; }
.monthly-perspective__board { display: grid; gap: 14px; padding: 26px; border: 1px solid #d1e2ee; border-radius: 22px; background: #fff; }
.monthly-perspective__board article { display: grid; grid-template-columns: 112px 130px 1fr; align-items: center; gap: 14px; padding: 18px; border-radius: 12px; background: #f4f9fd; }
.monthly-perspective__board article span { color: #50728d; font-size: 12px; font-weight: 800; }
.monthly-perspective__board article b { color: #176fc2; font-size: 15px; }
.monthly-perspective__board article p { font-size: 13px; line-height: 1.65; }
.monthly-perspective__board small { color: #7a8e9e; line-height: 1.7; }

.report-flow { padding: 96px 0; background: #fff; }
.report-flow__steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin: 0; padding: 0; list-style: none; }
.report-flow__steps li { padding: 28px 23px; border: 1px solid var(--report-line); border-radius: 17px; background: #f8fbfe; }
.report-flow__steps b, .workrate-views__grid > article > b { display: grid; width: 38px; height: 38px; margin-bottom: 21px; border-radius: 50%; place-items: center; color: #fff; background: var(--report-blue); font-size: 12px; }
.report-flow__steps h3, .workrate-views__grid h3 { margin: 0 0 10px; color: var(--report-deep); font-size: 19px; }
.report-flow__steps p, .workrate-views__grid p { color: var(--report-muted); font-size: 14px; line-height: 1.8; }

.report-data-note { padding: 70px 0; border-top: 1px solid #e2ebf2; border-bottom: 1px solid #e2ebf2; background: #f8fbfd; }
.report-data-note .container { display: grid; grid-template-columns: .8fr 1.2fr; align-items: center; gap: 62px; }
.report-data-note p { margin: 0; }
.report-cta { padding: 82px 0; color: #fff; background: linear-gradient(135deg, #1764aa, #123d69); }
.report-cta .container { display: flex; align-items: center; justify-content: space-between; gap: 42px; }
.report-cta h2 { color: #fff; }
.report-cta p { color: #d2e4f2; }
.report-cta .fi-kicker { color: #8ed0f1; }
.report-cta .report-actions { justify-content: flex-end; margin-top: 0; }
.fi-text-link--light { color: #fff !important; }

.report-workrate { --report-blue: #2676c9; }
.report-workrate__hero { background: linear-gradient(135deg, #f7fbff, #e8f4ff 72%, #f2f9ff); }
.report-hero__grid--workrate { grid-template-columns: .84fr 1.16fr; }
.workrate-formulas { padding: 100px 0; background: #fff; }
.workrate-formulas__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.workrate-formulas__grid article { padding: 32px; border: 1px solid var(--report-line); border-radius: 20px; background: #f7fbff; }
.workrate-formulas__grid article > span { display: inline-block; padding: 6px 12px; border-radius: 999px; color: #1766af; background: #dceeff; font-size: 12px; font-weight: 900; }
.workrate-formulas__grid article > p { margin-top: 18px; color: var(--report-muted); line-height: 1.85; }
.workrate-formula { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-top: 24px; color: var(--report-deep); }
.workrate-formula b { padding: 11px 14px; border-radius: 9px; background: #fff; box-shadow: 0 5px 16px rgba(39, 84, 123, .08); font-size: 18px; }
.workrate-formula i { color: #6095c1; font-style: normal; font-weight: 900; }
.workrate-units { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-top: 25px; }
.workrate-units i { height: 34px; border-radius: 5px; background: #3e8ed9; }
.workrate-units i.is-vacant { border: 1px solid #c8d7e4; background: #eef2f5; }
.workrate-area { display: grid; grid-template-columns: 3fr 1fr; height: 76px; margin-top: 25px; overflow: hidden; border: 2px solid #adc8dd; border-radius: 8px; }
.workrate-area i:first-child { background: repeating-linear-gradient(45deg, #55a0dd, #55a0dd 9px, #6eafe2 9px, #6eafe2 18px); }
.workrate-area i:last-child { background: #edf2f6; }

.workrate-example { padding: 96px 0; background: #eef6fd; }
.workrate-example__grid { display: grid; grid-template-columns: .88fr 1.12fr; align-items: center; gap: 62px; }
.workrate-example__cards { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.workrate-example__cards article { padding: 24px; border: 1px solid #d4e3ee; border-radius: 17px; background: #fff; }
.workrate-example__cards span, .workrate-example__cards strong { display: block; }
.workrate-example__cards span { color: #59809f; font-size: 12px; font-weight: 800; }
.workrate-example__cards strong { margin: 8px 0 22px; color: var(--report-deep); }
.workrate-example__cards article > div { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; height: 70px; }
.workrate-example__cards i { border-radius: 5px; background: #4c99d8; }
.workrate-example__cards i.is-vacant { border: 1px solid #cbd9e3; background: #edf1f4; }
.workrate-example__cards .is-area { grid-template-columns: 3fr 1fr; }

.workrate-views { padding: 98px 0; background: #fff; }
.workrate-views__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.workrate-views__grid article { padding: 27px 22px; border: 1px solid var(--report-line); border-radius: 17px; background: #f8fbfe; }
.workrate-scope { display: grid; grid-template-columns: 1fr 34px 1fr 34px 1fr; align-items: center; margin-top: 28px; }
.workrate-scope span { padding: 18px; border-radius: 10px; color: #285c84; background: #eaf4fb; text-align: center; font-weight: 800; }
.workrate-scope i { color: #77a7ce; font-style: normal; text-align: center; }
.workrate-actions { padding: 92px 0; background: #eef6fd; }
.workrate-actions .container { display: grid; grid-template-columns: .72fr 1.28fr; gap: 60px; }
.workrate-actions__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.workrate-actions__grid article { padding: 26px; border-radius: 16px; background: #fff; }
.workrate-actions__grid h3 { color: var(--report-deep); font-size: 20px; }
.workrate-actions__grid p { margin: 10px 0 17px; color: var(--report-muted); font-size: 14px; line-height: 1.75; }
.workrate-actions__grid .fi-text-link { color: var(--report-blue) !important; }

/* Bootstrap 3 の clearfix が grid / flex の余分な列として扱われるのを防ぐ。 */
.report-hero__grid::before, .report-hero__grid::after, .monthly-perspective__grid::before, .monthly-perspective__grid::after, .workrate-example__grid::before, .workrate-example__grid::after, .report-data-note .container::before, .report-data-note .container::after, .report-cta .container::before, .report-cta .container::after, .workrate-actions .container::before, .workrate-actions .container::after { display: none !important; content: none !important; }

@media (max-width: 1050px) {
    .report-hero__grid, .report-hero__grid--workrate, .monthly-perspective__grid, .workrate-example__grid, .report-data-note .container, .workrate-actions .container { grid-template-columns: 1fr; }
    .report-hero__copy { max-width: 760px; }
    .report-flow__steps, .workrate-views__grid { grid-template-columns: repeat(2, 1fr); }
    .report-cta .container { align-items: flex-start; flex-direction: column; }
    .report-cta .report-actions { justify-content: flex-start; }
}
@media (max-width: 767px) {
    .report-feature .container { width: min(100% - 32px, 1170px); }
    .report-hero { padding: 50px 0 60px; }
    .report-hero__copy h1 { font-size: 33px; }
    .report-hero__copy > p:not(.fi-kicker) { font-size: 15px; }
    .report-hero__visual { border-radius: 17px; }
    .report-hero__visual figcaption { position: static; border-radius: 0; text-align: center; }
    .report-intro, .monthly-perspective, .report-flow, .workrate-formulas, .workrate-example, .workrate-views, .workrate-actions { padding: 68px 0; }
    .monthly-report-cards, .workrate-formulas__grid, .workrate-example__cards, .workrate-actions__grid, .report-flow__steps, .workrate-views__grid { grid-template-columns: 1fr; }
    .monthly-report-card > p { min-height: 0; }
    .monthly-perspective__board article { grid-template-columns: 1fr; }
    .workrate-scope { grid-template-columns: 1fr; gap: 8px; }
    .workrate-scope i { transform: rotate(90deg); }
    .report-data-note { padding: 58px 0; }
    .report-cta { padding: 66px 0; }
}
@media (max-width: 440px) {
    .report-hero__copy h1 { font-size: 29px; }
    .report-actions { align-items: stretch; flex-direction: column; }
    .report-actions .fi-button { width: 100%; }
    .workrate-formula b { font-size: 15px; }
}
