/* Core business services: preserve, replace and connect data for decisions. */
body:has(> .rn-core-service) { padding-top: var(--header-h); }
.rn-core-service .rn-page-header { overflow: clip; }
.rn-core-service .rn-page-title { font-size: clamp(28px, 3.5vw, 44px); }
.rn-core-service .rn-page-title span { display: inline-block; }
.rn-core-service .rn-page-lead { max-width: 880px; }
.rn-core-service .rn-section { padding: 76px 0; }
.rn-core-service .rn-section-header { margin-bottom: 30px; }
.rn-core-service .rn-section-title { font-size: clamp(23px, 2.6vw, 32px); }
.rn-core-service .rn-section-lead { max-width: 900px; }
.rn-core-service [id] { scroll-margin-top: 110px; }
.rn-core-service a { text-underline-offset: 4px; }
.rn-core-service a:focus-visible { outline: 3px solid #0066cc; outline-offset: 5px; }
.core-nav { display: flex; flex-wrap: wrap; gap: 12px 28px; margin-top: 28px; font-size: 14px; }
.core-nav a { text-decoration: underline; }
.core-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; }
.core-grid h3 { font-size: 19px; margin: 0 0 12px; }
.core-grid p { color: var(--c-text-sub); margin: 0 0 12px; }
.core-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.core-list { margin: 0; }
.core-list > div { display: grid; grid-template-columns: 245px 1fr; gap: 32px; padding: 23px 0; border-top: 1px solid var(--c-border); }
.core-list dt { font-size: 18px; font-weight: 700; }
.core-list dd { color: var(--c-text-sub); margin: 0; }
.core-note { margin-top: 26px; font-size: 15px; color: var(--c-text-sub); }
.core-source { margin-top: 20px; font-size: 13px; color: var(--c-text-sub); }
.core-choices > div { padding: 25px; background: #fff; border-top: 3px solid #0066cc; }
.core-choices .core-choice-scope { color: #004d99; font-size: 13px; margin-bottom: 14px; }
.core-flow { margin: 0; }
.core-flow ol { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 26px; list-style: none; padding: 0; margin: 0; }
.core-flow li { position: relative; padding: 23px 18px; background: #fff; border-top: 3px solid #0066cc; }
.core-flow li:not(:last-child)::after { content: '→'; position: absolute; right: -22px; top: 50%; font-size: 20px; color: #0066cc; }
.core-flow h3 { font-size: 18px; margin: 0 0 12px; }
.core-flow p { color: var(--c-text-sub); margin: 0; font-size: 14px; }
.core-flow .core-confirm { border-color: #006b59; background: #eef8f5; }
.core-flow figcaption, .core-map figcaption { color: var(--c-text-sub); font-size: 13px; margin-top: 18px; }
.core-sync ol { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.core-sync li:not(:last-child)::after { content: '↔'; }
.core-map { margin: 0; }
.core-data-sources, .core-data-outputs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.core-data-sources > div, .core-data-outputs > div { padding: 24px; background: #fff; border-top: 3px solid #0066cc; }
.core-map h3 { font-size: 19px; margin: 0 0 10px; }
.core-map p { font-size: 15px; color: var(--c-text-sub); margin: 0; }
.core-map .core-arrow { text-align: center; color: #0066cc; font-size: 24px; line-height: 1.2; padding: 12px; }
.core-data-hub { text-align: center; border: 1px solid #0066cc; background: #fff; padding: 25px; }
.core-data-check { margin-top: 20px; padding: 20px 24px; border-left: 3px solid #006b59; background: #eef8f5; }
.core-steps { list-style: none; counter-reset: core-step; margin: 0; padding: 0; }
.core-steps li { position: relative; padding: 20px 0 20px 60px; border-top: 1px solid var(--c-border); counter-increment: core-step; }
.core-steps li::before { content: counter(core-step, decimal-leading-zero); position: absolute; top: 22px; left: 0; font: 700 22px var(--font-en); color: #0066cc; }
.core-steps h3 { font-size: 19px; margin: 0 0 8px; }
.core-steps p { color: var(--c-text-sub); margin: 0; }
.core-case { display: grid; grid-template-columns: 1fr 2fr; max-width: 920px; background: #fff; border-radius: 16px; overflow: hidden; color: var(--c-text); }
.core-case-visual { display: flex; flex-direction: column; gap: 10px; align-items: center; justify-content: center; padding: 24px; background: #e9f2fb; color: #004d99; font-size: 21px; font-weight: 700; }
.core-case-body { padding: 28px; }
.core-case-body > span { color: #004d99; font-size: 13px; }
.core-case-body h3 { font-size: 21px; margin: 10px 0 12px; }
.core-case-body p { color: var(--c-text-sub); font-size: 15px; margin: 0; }
.core-prices { width: 100%; border-collapse: collapse; }
.core-prices caption { text-align: left; font-size: 15px; color: var(--c-text-sub); padding-bottom: 16px; }
.core-prices th, .core-prices td { text-align: left; border-top: 1px solid var(--c-border); padding: 20px; vertical-align: top; }
.core-prices th { width: 25%; }
.core-prices td:last-child { color: var(--c-text-sub); }
@media (max-width: 768px) {
  .rn-core-service .rn-section { padding: 52px 0; }
  .rn-core-service .rn-section-header { margin-bottom: 24px; }
  .core-grid, .core-flow ol, .core-data-sources, .core-data-outputs, .core-case { grid-template-columns: 1fr; gap: 22px; }
  .core-list > div { grid-template-columns: 1fr; gap: 8px; padding: 20px 0; }
  .core-flow li:not(:last-child)::after { content: '↓'; top: auto; bottom: -26px; right: 22px; }
  .core-sync li:not(:last-child)::after { content: '↕'; }
  .core-steps li { padding-left: 42px; }
  .core-case { gap: 0; }
  .core-case-body { padding: 22px; }
  .core-prices tr { display: block; border-top: 1px solid var(--c-border); padding: 18px 0; }
  .core-prices th, .core-prices td { display: block; width: 100%; border: none; padding: 4px 0; }
}
