/* JPMorgan role chapter pages */
.jpmorgan-page .page-hero-text {
  background:
    radial-gradient(circle at 10% 0%, rgba(37, 99, 235, 0.2), transparent 48%),
    radial-gradient(circle at 100% 100%, rgba(20, 184, 166, 0.12), transparent 42%);
}

.jpmorgan-page .page-title { max-width: 780px; }
.jpmorgan-page .page-subtitle { max-width: 700px; font-size: 1rem; line-height: 1.65; }

.jpm-role-card {
  position: relative;
  overflow: hidden;
  min-height: 100%;
  padding-top: 1.05rem;
}

.jpm-role-card::before {
  content: "";
  display: block;
  width: 2.3rem;
  height: 0.22rem;
  border-radius: 99px;
  margin-bottom: 0.8rem;
  background: linear-gradient(90deg, #2563eb, #14b8a6);
}

.jpm-role-card .card-title { font-size: 1rem; }
.jpm-role-card .card-body { line-height: 1.6; }
.jpm-role-card .card-arrow { display: inline-flex; margin-top: 0.55rem; color: var(--color-accent); font-size: 0.78rem; font-weight: 650; }
.jpm-role-card:focus-visible, .role-next:focus-visible, .role-contents a:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 3px; }

.role-page .page-hero { align-items: stretch; }
.role-page .page-hero-text { display: flex; flex-direction: column; justify-content: center; }
.role-page .page-hero-aside { display: grid; gap: 0.75rem; align-content: center; }
.role-page .section { margin-top: 2.8rem; }
.role-page .section-header { display: block; align-items: flex-start; }
.role-page .section-title { font-size: 1.35rem; margin: 0 0 0.35rem; }
.role-page .section-subtitle { line-height: 1.55; margin: 0; }

.role-content { display: grid; gap: 0.9rem; }
.role-content .card { padding: 1.1rem 1.05rem; }
.role-content .card-body { line-height: 1.7; margin-bottom: 0; }
.role-content .card-body p { margin: 0 0 0.85rem; }
.role-content .card-body p:last-child { margin-bottom: 0; }
.role-content .card-body ul, .role-content .card-body ol { margin: 0; padding-left: 1.2rem; }
.role-content .card-body li + li { margin-top: 0.45rem; }
.role-content .card-body strong { color: var(--color-text); }

.role-quote { border-left: 3px solid var(--color-accent); color: var(--color-text); font-size: 1.02rem; font-weight: 600; line-height: 1.55; margin: 0; padding: 0.15rem 0 0.15rem 1rem; }
.role-flow { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem; margin-top: 0.9rem; }
.role-flow span { border: 1px solid rgba(148, 163, 184, 0.45); border-radius: 999px; background: var(--color-surface-alt); color: var(--color-text); font-size: 0.76rem; padding: 0.34rem 0.62rem; }
.role-flow b { color: var(--color-accent); font-size: 0.9rem; }

.role-contents { border: 1px solid rgba(148, 163, 184, 0.35); border-radius: var(--radius-lg); background: var(--color-surface); box-shadow: var(--shadow-soft); padding: 1rem; }
.role-contents-title { color: var(--color-text); font-size: 0.78rem; font-weight: 650; margin-bottom: 0.55rem; }
.role-contents a { color: var(--color-text-muted); display: block; font-size: 0.78rem; padding: 0.32rem 0; }
.role-contents a:hover { color: var(--color-accent); }

.role-next { align-items: center; display: flex; justify-content: space-between; gap: 1rem; }
.role-next-label { color: var(--color-text-muted); font-size: 0.72rem; margin-bottom: 0.15rem; }
.role-next-title { color: var(--color-text); font-size: 0.92rem; font-weight: 650; }
.role-next-arrow { color: var(--color-accent); font-size: 1.35rem; flex-shrink: 0; }

@media (min-width: 768px) {
  .role-content { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .role-content .card-wide { grid-column: 1 / -1; }
  .role-contents { position: sticky; top: 5.8rem; }
}

@media (max-width: 639px) {
  .role-page .section-title { font-size: 1.15rem; }
  .role-next { align-items: flex-start; }
}
