/* Roles stay in reading order; diagrams use the site's type and color system. */
.role-diagram{margin:28px 0;color:#033327;font-size:16px;line-height:1.75}
.role-icon{width:54px;height:54px;display:block;flex-shrink:0}
.role-source{display:flex;align-items:center;gap:14px;border-bottom:1px solid #cbd8cc;padding:0 0 20px;margin-bottom:24px}.role-source .role-icon{width:38px;height:38px}.role-source p{margin:0;font-size:16px}.role-source p>span{display:block;font-size:13px;font-weight:600;color:#48675d;margin-bottom:3px}
.role-sequence{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;align-items:stretch}
.role-step{min-width:0;position:relative;border:1px solid #d3ddcf;border-radius:5px;background:#f3f2ec;overflow:visible}.role-label{font-size:14px;font-weight:700;line-height:1.6;margin:0;padding:12px 14px;background:#e8eae3;display:flex;gap:8px;align-items:center;border-radius:4px 4px 0 0}.role-number{font-size:12px;font-weight:500;opacity:.8}.role-content{padding:20px 16px}.role-content .role-icon{margin-bottom:16px}.role-content h4{font-size:18px;line-height:1.65;margin:0;letter-spacing:0;text-wrap:pretty}.role-content p{font-size:16px;line-height:1.8;margin:10px 0 0;color:#38574a}.role-ai{background:#e6f1da;border-color:#b4ceb0}.role-ai .role-label{background:#0b513b;color:white;border-bottom:3px solid #269b79;padding-bottom:9px}.role-system{background:#edf3f1}.role-system .role-label{background:#dce9e4;color:#174c3b}.role-human{background:#f4f1e9}.role-human .role-label{background:#e9e4d9}
.role-sequence>.role-step:not(:last-child):after,.route-track>.role-step:not(:last-child):after{content:'→';position:absolute;right:-23px;top:50%;font-size:23px;line-height:1;color:#247b59;z-index:1}
.role-finish{display:flex;align-items:center;gap:12px;padding:18px;background:#f3f5ef;border:1px solid #cbd8cc;border-radius:5px;min-width:0}.role-finish .role-icon{width:36px;height:36px}.role-finish p{font-size:16px;font-weight:600;line-height:1.7;margin:0}.role-sequence>.role-finish{flex-direction:column;justify-content:center;text-align:center}.accounting-sequence+.role-finish{margin-top:20px;justify-content:flex-end;background:transparent;border:0;padding:0}.accounting-sequence+.role-finish .role-icon{width:28px;height:28px}
.role-footnote{font-size:15px;line-height:1.9;color:#48675d;margin:18px 0 0}.role-route{display:grid;grid-template-columns:125px 1fr;gap:16px;margin-top:18px;align-items:start}.route-name{font-size:15px;line-height:1.8;margin:0;padding:14px 0;font-weight:600}.route-track{display:grid;grid-template-columns:1.1fr 1.1fr .7fr;gap:24px;align-items:stretch;min-width:0}.route-track>.role-ai:first-child:nth-last-child(2){grid-column:span 2}.route-track .role-content{display:grid;grid-template-columns:38px 1fr;gap:8px 12px;padding:16px}.route-track .role-content .role-icon{grid-row:1/3;width:38px;height:38px;margin:0}.route-track .role-content p{grid-column:2;margin:0}.route-track .role-finish{flex-direction:column;justify-content:center;text-align:center}.role-support{display:flex;gap:24px;flex-wrap:wrap;border-top:1px solid #cbd8cc;padding-top:18px;margin-top:24px}.role-support p{margin:0;font-size:15px}.role-support b{margin-right:10px}
@media(max-width:1100px){.role-sequence{gap:18px}.role-sequence>.role-step:not(:last-child):after{right:-18px;font-size:19px}.role-label{padding-left:10px;padding-right:10px}.role-content{padding:18px 12px}.role-route{grid-template-columns:1fr;gap:8px}.route-name{padding:0}.route-track{gap:20px}}
@media(max-width:900px){.role-sequence{grid-template-columns:1fr;gap:25px}.role-sequence>.role-step:not(:last-child):after,.route-track>.role-step:not(:last-child):after{content:'↓';top:auto;bottom:-25px;right:calc(50% - 9px);font-size:21px}.role-content{display:grid;grid-template-columns:45px 1fr;gap:8px 14px;padding:18px 16px}.role-content .role-icon{width:45px;height:45px;grid-row:1/3;margin:0}.role-content p{grid-column:2;margin:0}.role-content h4{font-size:18px}.role-sequence>.role-finish{flex-direction:row;justify-content:flex-start;text-align:left}.role-sequence>.role-finish br{display:none}.role-label{padding:11px 16px}.role-source{align-items:flex-start}.route-track{grid-template-columns:1fr;gap:25px}.route-track>.role-ai:first-child:nth-last-child(2){grid-column:auto}.route-track .role-finish{flex-direction:row;justify-content:flex-start;text-align:left}.role-route{margin-top:26px;border-top:1px solid #d3ddcf;padding-top:18px;gap:12px}.role-route:first-of-type{border-top:0}.route-name{font-size:16px}.role-support{gap:12px}.role-footnote{font-size:16px}.role-diagram{margin-top:24px}.accounting-sequence+.role-finish{justify-content:flex-start;margin-top:22px}}

/* Final readability pass: keep service conditions legible at all widths. */
.diagnosis .wrap>.note,.service .wrap>.note,.flow>.note,#contact-form>.note{font-size:15px;line-height:1.9}

/* Preview notice is separate from the customer-facing form guidance. */
#contact-form>.preview-notice{padding:14px 16px;border-left:3px solid #269b79;background:#edf3ee}
