/* 研究詳細：学校救急処置録 — page styles */
.rfa section[id] { scroll-margin-top: 16px; }

/* Intro */
.rfa-intro { padding: 32px var(--gutter); display: flex; flex-direction: column; gap: 20px; align-items: flex-start; }
.rfa-intro > * { max-width: 100%; }
.crumbs { font-size: 11px; line-height: 1.95; color: var(--muted); white-space: pre-wrap; }
.crumbs a { color: var(--muted); }
.intro-label { display: flex; justify-content: space-between; gap: 12px; width: 100%; font-size: 11px; flex-wrap: wrap; }
.intro-label .k1 { letter-spacing: 2px; }
.intro-label .k2 { color: var(--muted); }
.rfa-intro h1 { font-size: 28px; line-height: 1.6; }
.rfa-intro .tags { gap: 10px; }
.rfa-intro .lead { font-size: 15px; line-height: 1.95; }
.rfa-intro .authors { font-size: 12px; line-height: 1.95; color: var(--muted); }

/* Flow diagram */
.rfa-flow { padding: 32px var(--gutter); display: flex; flex-direction: column; gap: 20px; }
.flow-band { background: var(--beige); border: 1px solid var(--line); border-radius: var(--radius); min-height: 44px; padding: 0 16px; display: flex; align-items: center; }
.flow-band h2 { font-size: 16px; }
.flow-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; }
.flow-head .t { font-size: 24px; font-weight: 700; line-height: 1.5; }
.flow-head .s { font-size: 10px; line-height: 1.95; color: var(--muted); }
.flow-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.flow-steps a {
  height: 100%; display: flex; flex-direction: column; gap: 16px; padding: 20px;
  background: #fff; border: 1px solid var(--line); border-radius: var(--radius);
  color: var(--text); text-decoration: none;
}
.flow-steps a:hover { background: var(--mint); }
.flow-steps .d { font-size: 11px; letter-spacing: 1px; }
.flow-steps .n { font-size: 20px; font-weight: 700; line-height: 1.5; }
.flow-steps .j { font-size: 14px; line-height: 1.95; }
.flow-steps .m { font-size: 11px; line-height: 1.95; color: var(--muted); }

/* Read */
.rfa-read { padding: 32px var(--gutter); display: flex; gap: 40px; align-items: flex-start; }
.toc { width: 220px; flex-shrink: 0; display: flex; flex-direction: column; gap: 20px; }
.toc-title { font-size: 28px; font-weight: 700; line-height: 1.1; white-space: nowrap; }
.toc hr { border: 0; height: 1px; background: var(--line); margin: 0; }
.toc ul { display: flex; flex-direction: column; gap: 20px; }
.toc ul a { font-size: 12px; line-height: 1.95; color: var(--text); text-decoration: none; }
.toc ul a:hover { text-decoration: underline; }
.related { padding-top: 22px; display: flex; flex-direction: column; gap: 16px; line-height: 1.95; }
.related .rl { font-size: 11px; color: var(--muted); }
.related a { font-size: 13px; color: var(--text); text-decoration: none; }
.related a:hover { text-decoration: underline; }

.rfa-read .body { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; }
.body .txt { font-size: 15px; line-height: 2.1; }
.bg-sec { padding-bottom: 32px; display: flex; flex-direction: column; gap: 20px; }
.bg-sec h2 { font-size: 24px; font-weight: 500; line-height: 1.95; }
.step { border-top: 1px solid var(--line); padding: 32px 0; display: flex; flex-direction: column; gap: 20px; }
.step-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.step-head h2 { font-size: 32px; }
.step-head span { font-size: 13px; white-space: nowrap; }
.step h3 { font-size: 22px; font-weight: 500; line-height: 1.95; }
.step .sub { font-size: 14px; font-weight: 500; line-height: 1.95; }
.step .src { font-size: 11px; line-height: 1.95; color: var(--muted); }
.award { background: #e1e8dc; padding: 22px; display: flex; gap: 24px; align-items: center; }
.award .aw { font-size: 24px; font-weight: 700; white-space: nowrap; }
.award > div { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 7px; line-height: 1.95; }
.award .an { font-size: 14px; font-weight: 500; }
.award .ad { font-size: 11px; }
.views { display: flex; gap: 20px; }
.views > div { flex: 1 1 0; min-width: 0; background: #ecede5; padding: 24px; display: flex; flex-direction: column; gap: 12px; }
.views .vn { font-size: 30px; font-weight: 700; line-height: 1.1; }
.views .vj { font-size: 16px; font-weight: 500; line-height: 1.95; }
.views .vd { font-size: 12px; line-height: 1.95; }
.note { border-top: 1px solid var(--line); padding-top: 28px; display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }
.note > * { max-width: 100%; }
.note .nt { font-size: 13px; font-weight: 500; line-height: 1.95; }
.note .nd { font-size: 12px; line-height: 1.95; color: var(--muted); }

/* Larger square button variant (Figma: 50px high, 32px gap, 21px arrow, no radius) */
.btn-lg { height: 50px; gap: 32px; min-width: 194px; border-radius: 0; font-weight: 500; }
.btn-lg .arrow { font-size: 21px; }

/* Continue */
.rfa-next { background: #e1e8dc; padding: 40px var(--gutter); display: flex; justify-content: space-between; align-items: center; gap: 24px; }
.rfa-next .t { font-size: 28px; font-weight: 700; line-height: 1.1; }
.rfa-next .s { font-size: 20px; font-weight: 500; line-height: 1.95; margin-top: 12px; }

/* Footer name on this page (Figma: 博田 光, 32px bold) */
.site-footer .footer-sign .name { font-size: 32px; font-weight: 700; }

@media (max-width: 1200px) {
  .flow-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
  .flow-steps { grid-template-columns: 1fr; gap: 16px; }
  .rfa-read { flex-direction: column; gap: 32px; }
  .toc { width: 100%; }
  .toc-title { white-space: normal; }
  .step-head h2 { font-size: 26px; }
  .award { flex-direction: column; align-items: flex-start; gap: 12px; }
  .views { flex-direction: column; }
  .rfa-next { flex-direction: column; align-items: flex-start; }
  .rfa-intro h1 { font-size: 24px; }
  .site-footer .footer-sign .name { font-size: 28px; }
}
