/* Shared matter sources and local model, followed by three visible workflows. */
.legal-flow-section { background: #f7f8f1; border-top: 1px solid #e1e6d8; }
.lf-card { margin: 0; padding: 32px 32px 0; border: 1px solid #d8e1ce; border-radius: 22px; background: #fffffb; box-shadow: 0 18px 42px #243f2410; overflow: hidden; }
.lf-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) 64px minmax(0, 1fr); gap: 28px; align-items: center; }
.lf-col { min-width: 0; }
.lf-stage-title { display: flex; align-items: center; gap: 12px; margin: 0 0 23px; font: 12px/1.7 var(--mono); letter-spacing: .02em; color: #5b724d; }
.lf-stage-title > span { font-weight: 700; color: #355c39; }
.lf-source-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.lf-source { display: flex; align-items: flex-start; gap: 10px; min-width: 0; padding: 15px; border: 1px solid #d5e0c9; border-radius: 10px; background: #f1f5e9; }
.lf-source > i { width: 6px; height: 6px; margin-top: 8px; background: #74925c; border-radius: 50%; flex-shrink: 0; }
.lf-source > span { min-width: 0; }
.lf-source strong { display: block; font-size: 15px; line-height: 1.5; font-weight: 600; color: #2d4b32; }
.lf-source small { display: block; margin-top: 5px; font-size: 13px; line-height: 1.6; color: #5c7450; }
.lf-connector { width: 64px; height: 24px; color: #92ac7d; }
.lf-core { max-width: 420px; margin-inline: auto; padding: 27px 25px; text-align: center; border: 2px solid #557c45; border-radius: 20px; background: radial-gradient(ellipse at 50% 40%, #f0f5e6, #fffffc 75%); box-shadow: 0 12px 34px #4d6c3210; }
.lf-core-kicker { display: flex; justify-content: center; align-items: center; gap: 7px; font: 10px/1.7 var(--mono); letter-spacing: .06em; color: #5c774a; }
.lf-core-kicker .icon { width: 13px; height: 13px; }
.lf-core h3 { font-size: 24px; line-height: 1.4; letter-spacing: -.7px; margin-top: 16px; font-weight: 600; }
.lf-wave { height: 58px; display: flex; justify-content: center; align-items: center; gap: 7px; margin: 23px 0; }
.lf-wave i { width: 12px; border-radius: 8px; height: 21px; background: #bdd59f; transform-origin: center; animation: lf-breathe 2.8s ease-in-out infinite; }
.lf-wave i:nth-child(2), .lf-wave i:nth-child(4) { height: 38px; background: #8daf6e; animation-delay: -.35s; }
.lf-wave i:nth-child(3) { height: 56px; background: #315d3d; animation-delay: -.7s; }
.lf-wave i:nth-child(5) { animation-delay: -1s; }
.lf-core-task strong { display: block; font-size: 16px; line-height: 1.65; font-weight: 600; }
.lf-core-task > span { display: block; margin-top: 6px; font-size: 13px; line-height: 1.7; color: #607b51; }
.lf-core-review { display: flex; justify-content: center; align-items: center; gap: 10px; border-top: 1px solid #dde7d4; margin-top: 22px; padding-top: 18px; font-size: 14px; line-height: 1.6; color: #557147; }
.lf-core-review > .icon { width: 21px; height: 21px; }
.lf-core-review strong { font-weight: 600; color: #315339; }
.lf-workflows-stage { margin-top: 34px; padding-top: 26px; border-top: 1px solid #dce4d4; }
.lf-workflows { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.lf-workflow { display: flex; flex-direction: column; min-width: 0; padding: 23px; border: 1px solid #d6e0cb; border-radius: 14px; background: #f8faf3; }
.lf-workflow-topline { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; color: #65804d; }
.lf-workflow-topline > .icon { width: 25px; height: 25px; }
.lf-workflow-topline > span { font: 11px/1.5 var(--mono); color: #7c8d70; }
.lf-workflow h4 { font-size: 21px; line-height: 1.5; font-weight: 600; letter-spacing: -.35px; }
.lf-workflow-task { margin-top: 10px; color: #3e6040; font-size: 15px; line-height: 1.7; }
.lf-workflow-sources { margin-top: 19px; color: #647557; font-size: 13px; line-height: 1.8; }
.lf-workflow-sources > strong { display: block; margin-bottom: 4px; color: #3c5636; font-size: 11px; font-weight: 600; }
.lf-workflow-outputs { list-style: none; margin: 23px 0 0; padding: 0; border-top: 1px solid #dce5d2; }
.lf-workflow-outputs > li { padding: 15px 0; border-bottom: 1px solid #e0e7d8; }
.lf-workflow-outputs strong { display: block; font-size: 15px; font-weight: 600; line-height: 1.6; }
.lf-workflow-outputs p { margin-top: 4px; color: #607253; font-size: 14px; line-height: 1.7; }
.lf-workflow-demo { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: auto; padding-top: 23px; color: #254c36; font-size: 14px; font-weight: 600; line-height: 1.7; text-underline-offset: 4px; }
.lf-workflow-demo:hover { text-decoration: underline; }
.lf-workflow-demo > .icon { width: 18px; height: 18px; }
.lf-figure-note { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 24px 0; margin-top: 27px; border-top: 1px solid #dde4d5; font-size: 14px; line-height: 1.7; color: #557047; text-align: center; }
.lf-figure-note .icon { width: 17px; height: 17px; }
.lf-footer { margin-top: 23px; }
.lf-footer > p { max-width: 800px; font-size: 14px; line-height: 1.85; color: #5a704e; }
@keyframes lf-breathe { 0%, 100% { transform: scaleY(.72); } 50% { transform: scaleY(1); } }

@media (max-width: 1140px) {
  .lf-grid { grid-template-columns: minmax(0, 1fr) 40px minmax(0, 1fr); gap: 20px; }
  .lf-connector { width: 40px; }
  .lf-source-list { grid-template-columns: minmax(0, 1fr); gap: 9px; }
  .lf-source { padding: 12px 14px; }
  .lf-source small { margin-top: 2px; }
  .lf-workflows { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .lf-workflow { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); column-gap: 30px; }
  .lf-workflow-outputs { margin: 0; border-top: 0; }
  .lf-workflow-outputs > li:first-child { padding-top: 0; }
  .lf-workflow-sources { grid-column: 1 / -1; }
  .lf-workflow-demo { grid-column: 1 / -1; justify-content: flex-start; }
}
@media (max-width: 760px) {
  .lf-card { padding: 24px 21px 0; border-radius: 16px; }
  .lf-grid { grid-template-columns: minmax(0, 1fr); gap: 23px; }
  .lf-stage-title { font-size: 12px; margin-bottom: 18px; }
  .lf-source-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .lf-source { padding: 14px; }
  .lf-connector { width: 44px; height: 24px; transform: rotate(90deg); justify-self: center; }
  .lf-core { padding: 25px 22px; }
  .lf-core h3 { font-size: 23px; }
  .lf-workflows-stage { margin-top: 29px; padding-top: 23px; }
  .lf-workflow { display: flex; padding: 22px; }
  .lf-workflow h4 { font-size: 22px; }
  .lf-workflow-sources { font-size: 14px; }
  .lf-workflow-outputs { margin-top: 22px; border-top: 1px solid #dce5d2; }
  .lf-workflow-outputs > li:first-child { padding-top: 15px; }
  .lf-workflow-outputs strong { font-size: 16px; }
  .lf-workflow-outputs p, .lf-workflow-demo { font-size: 15px; }
  .lf-figure-note { font-size: 13px; align-items: flex-start; text-align: left; }
  .lf-figure-note .icon { margin-top: 4px; }
}
@media (max-width: 400px) {
  .lf-card { padding-inline: 15px; }
  .lf-source-list { grid-template-columns: minmax(0, 1fr); }
  .lf-workflow { padding: 19px; }
}
@media (prefers-reduced-motion: reduce) {
  .lf-wave i { animation: none; }
}
