
.core-flow-section { scroll-margin-top: 112px; padding: 72px 0; }
.core-flow-heading { max-width: 780px; margin-bottom: 30px; }
.core-flow-heading h2 { font-size: clamp(30px,3.2vw,43px); line-height: 1.14; letter-spacing: -.035em; margin-bottom: 16px; text-wrap: balance; }
.core-flow-heading p { color: var(--muted); line-height: 1.7; max-width: 74ch; margin: 0; }
.core-flow-heading .section-kicker { margin-bottom: 14px; }
.core-flow { margin: 0; }
.core-flow-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1.12fr 1fr; gap: 38px; align-items: stretch; }
.core-flow-step { position: relative; min-width: 0; background: white; border: 1px solid #d5e3ea; border-radius: 18px; padding: 27px; }
.core-flow-step:not(:last-child)::after { content: '→'; position: absolute; right: -31px; top: 48%; color: #138394; font-size: 26px; font-weight: 600; }
.core-flow-number { display: flex; width: 32px; height: 32px; align-items: center; justify-content: center; border-radius: 50%; background: #e8f8fa; color: #126c7a; font-size: 12px; font-weight: 800; margin-bottom: 25px; }
.core-flow-label { display: block; color: #597080; font-size: 11px; line-height: 1.5; font-weight: 750; letter-spacing: .04em; margin-bottom: 10px; }
.core-flow-step h3 { font-size: 24px; line-height: 1.18; letter-spacing: -.025em; margin-bottom: 15px; overflow-wrap: anywhere; }
.core-flow-step p { font-size: 15px; line-height: 1.7; color: #526579; }
.core-flow-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 23px; }
.core-flow-tags span { padding: 5px 8px; font-size: 11px; background: #f0f5f8; color: #415d70; border-radius: 5px; }
.core-flow-center { background: linear-gradient(135deg,#082031,#0c3545); color: white; border-color: #177a88; box-shadow: 0 14px 32px #0a31451a; }
.core-flow-center .core-flow-label { color: #a6dbe3; }
.core-flow-center h3 { font-size: 36px; color: #85edf3; }
.core-flow-center ul { padding-left: 18px; margin: 0 0 20px; color: #e1edf1; font-size: 15px; line-height: 1.8; }
.core-flow-detail { display: block; border-top: 1px solid #ffffff29; padding-top: 15px; color: #b7d0da; font-size: 12px; line-height: 1.6; }
.core-flow-caption { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 24px; padding: 22px 26px; background: #eaf2f5; border-radius: 12px; }
.core-flow-caption strong,.core-flow-caption span { display: block; }
.core-flow-caption strong { font-size: 14px; margin-bottom: 5px; }
.core-flow-caption span { color: #526579; font-size: 13px; line-height: 1.6; }
@media(max-width:1080px) { .core-flow-steps { grid-template-columns: minmax(0,1fr); gap: 34px; } .core-flow-step:not(:last-child)::after { content:'↓'; top:auto; bottom:-33px; right:calc(50% - 9px); } }
@media(max-width:760px) { .core-flow-section { padding: 48px 0; scroll-margin-top: 94px; } .core-flow-step { padding: 24px; } .core-flow-number { margin-bottom: 16px; } .core-flow-caption { grid-template-columns:1fr; padding:22px; gap:20px; } }
