/* Shared only by the RUTEN project and corporate support pages. */
.ruten-page .ruten-expertise { background: var(--accent-panel); color: #fff; }
.ruten-expertise .expertise-heading { max-width: 1150px; }
.ruten-page .ruten-expertise .section-label { color: #fff; font-size: 14px; line-height: 1.8; }
.ruten-page .ruten-expertise h2 { margin: 24px 0 28px; font-size: clamp(32px, 4.5vw, 72px); font-weight: 600; line-height: 1.4; }
.ruten-page .ruten-expertise .expertise-lead { margin: 0; font-size: 18px; line-height: 2; }
.ruten-expertise .expertise-flow { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 48px 0 0; padding: 0; list-style: none; border-top: 1px solid rgb(255 255 255 / .45); }
.ruten-expertise .expertise-flow > li { position: relative; min-width: 0; padding: 28px 30px 30px 0; }
.ruten-expertise .expertise-flow > li + li { padding-left: 30px; border-left: 1px solid rgb(255 255 255 / .45); }
.ruten-expertise .expertise-step { display: block; color: #fff; font-size: 14px; letter-spacing: .07em; }
.ruten-expertise .expertise-flow h3 { margin: 24px 0 18px; font-size: clamp(23px, 2vw, 30px); font-weight: 600; line-height: 1.55; }
.ruten-page .ruten-expertise .expertise-flow p { margin: 0; font-size: 16px; line-height: 2; }
.ruten-expertise .expertise-footer { display: flex; align-items: center; gap: 48px; padding-top: 30px; border-top: 1px solid rgb(255 255 255 / .45); }
.ruten-page .ruten-expertise .expertise-footer p { flex: 1; margin: 0; font-size: 16px; line-height: 2; }
.ruten-expertise .expertise-footer strong { display: block; margin-bottom: 8px; }
.ruten-expertise .expertise-footer .button { flex: 0 0 auto; gap: 24px; border: 1px solid #fff; background: #fff; color: #111; font-size: 16px; }
.ruten-expertise .expertise-footer .button:hover { background: #111; color: #fff; }
.ruten-expertise .expertise-footer .button:focus-visible { outline: 3px solid #fff; outline-offset: 4px; }
@media (max-width: 1000px) {
  .ruten-expertise .expertise-flow > li { padding-right: 20px; }
  .ruten-expertise .expertise-flow > li + li { padding-left: 20px; }
  .ruten-expertise .expertise-footer { align-items: flex-start; flex-direction: column; gap: 24px; }
}
@media (max-width: 600px) {
  .ruten-page .ruten-expertise .expertise-lead { font-size: 16px; }
  .ruten-expertise .expertise-flow { grid-template-columns: minmax(0, 1fr); margin-top: 32px; }
  .ruten-expertise .expertise-flow > li,
  .ruten-expertise .expertise-flow > li + li { padding: 24px 0; border-left: 0; }
  .ruten-expertise .expertise-flow > li + li { border-top: 1px solid rgb(255 255 255 / .45); }
  .ruten-expertise .expertise-flow h3 { margin: 16px 0 12px; }
  .ruten-expertise .expertise-footer .button { width: 100%; }
}
