/* Homepage section styles. All selectors are scoped to the new sections. */
.ffl-home-refine{--home-red:#e60012;--home-ink:#111;--home-gray:#52565c;--home-border:#dfe2e6;color:var(--home-ink);padding:88px 0;line-height:1.85;overflow-wrap:anywhere}
.ffl-home-refine *,.ffl-home-refine *::before,.ffl-home-refine *::after{box-sizing:border-box}
.ffl-home-wrap{width:calc(100% - 64px);max-width:1180px;margin:0 auto}
.ffl-home-refine .ffl-home-eyebrow{font-size:12px;font-weight:750;letter-spacing:.15em;color:var(--home-red);margin:0 0 22px;line-height:1.5}
.ffl-home-refine h2{font-size:clamp(30px,3.3vw,44px);line-height:1.4;letter-spacing:-.045em;font-weight:750;margin:0 0 24px;text-wrap:balance}
.ffl-home-refine h3{font-size:22px;line-height:1.55;letter-spacing:-.025em;font-weight:700;margin:0 0 12px}
.ffl-home-refine p{font-size:16px;color:var(--home-gray);margin:0;line-height:1.95}
.ffl-home-refine .ffl-home-lead{font-size:17px;line-height:2}
.ffl-home-why-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:100px;align-items:start}
.ffl-home-intro{max-width:460px}
.ffl-home-refine .ffl-home-experience{margin-top:30px;padding-top:21px;border-top:1px solid var(--home-border);font-size:14px;font-weight:650;color:var(--home-ink)}
.ffl-home-principles{border-top:2px solid var(--home-red)}
.ffl-home-principles article{display:grid;grid-template-columns:36px minmax(0,1fr);gap:20px;padding:28px 0;border-bottom:1px solid var(--home-border)}
.ffl-home-index{color:var(--home-red);font-size:14px;letter-spacing:.08em;font-weight:750;line-height:2}
.ffl-home-principles .ffl-home-index{padding-top:3px}
.ffl-home-services{background:#f5f6f8}
.ffl-home-section-head{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:68px;align-items:end;margin-bottom:40px}
.ffl-home-section-head h2{margin-bottom:0}
.ffl-home-section-head>.ffl-home-lead{padding-bottom:7px}
.ffl-home-service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.ffl-home-service-card{padding:30px 28px 28px;background:#fff;border:1px solid #e3e5e9;border-radius:16px;display:flex;flex-direction:column;min-width:0}
.ffl-home-card-top{display:flex;align-items:center;gap:18px;margin-bottom:27px}
.ffl-home-card-label{font-size:10px;font-weight:650;letter-spacing:.1em;line-height:1.5;color:#676c73}
.ffl-home-service-card h3{font-size:27px;line-height:1.45;margin-bottom:20px;letter-spacing:-.025em}
.ffl-home-service-card>p{font-size:15px;line-height:1.95;margin-bottom:24px;flex-grow:1}
.ffl-home-service-topics{list-style:none!important;margin:0!important;padding:20px 0 0!important;border-top:1px solid var(--home-border);display:grid;gap:8px}
.ffl-home-service-topics li{display:flex;gap:9px;font-size:13px;line-height:1.65;color:#454950;margin:0;padding:0}
.ffl-home-service-topics li::before{content:"";width:4px;height:4px;background:var(--home-red);flex:none;margin-top:.7em;border-radius:50%}
.ffl-home-service-bottom{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:30px}
.ffl-home-service-bottom p{font-size:14px}
.ffl-home-link{display:inline-flex;align-items:center;gap:25px;color:var(--home-ink);font-size:15px;font-weight:700;text-decoration:none;border-bottom:1px solid var(--home-ink);padding:8px 0;white-space:nowrap}
.ffl-home-link:hover{color:var(--home-red);border-color:var(--home-red)}
.ffl-home-link:focus-visible{outline:2px solid var(--home-red);outline-offset:6px}
.ffl-home-steps{list-style:none!important;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px;margin:48px 0 0!important;padding:0!important}
.ffl-home-steps li{position:relative;isolation:isolate;margin:0;padding:0;min-width:0}
.ffl-home-steps li:not(:last-child)::after{content:"";position:absolute;top:25px;left:62px;width:calc(100% - 40px);height:1px;background:var(--home-border);z-index:-1}
.ffl-home-step-number{display:flex;align-items:center;justify-content:center;width:50px;height:50px;background:#fff;border:1px solid #e5b9bd;border-radius:50%;color:var(--home-red);font-weight:700;font-size:14px;margin-bottom:23px}
.ffl-home-steps h3{font-size:19px;margin-bottom:13px}
.ffl-home-steps p{font-size:15px;line-height:1.95}
@media(max-width:1023px){.ffl-home-why-layout{gap:48px}.ffl-home-section-head{gap:40px}.ffl-home-service-grid{gap:14px}.ffl-home-service-card{padding:25px 20px}.ffl-home-service-card h3{font-size:24px}.ffl-home-card-top{gap:12px}.ffl-home-card-label{font-size:9px}.ffl-home-steps{gap:24px}.ffl-home-steps h3{font-size:17px}}
@media(max-width:760px){.ffl-home-refine{padding:58px 0}.ffl-home-wrap{width:calc(100% - 40px)}.ffl-home-refine h2{font-size:30px;line-height:1.5;margin-bottom:20px;letter-spacing:-.04em}.ffl-home-refine h3{font-size:20px}.ffl-home-refine .ffl-home-eyebrow{font-size:11px;margin-bottom:17px}.ffl-home-refine .ffl-home-lead{font-size:16px;line-height:1.95}.ffl-home-why-layout,.ffl-home-section-head{grid-template-columns:1fr;gap:30px}.ffl-home-intro{max-width:none}.ffl-home-desktop-br{display:none}.ffl-home-refine .ffl-home-experience{margin-top:22px;padding-top:17px}.ffl-home-principles article{gap:12px;grid-template-columns:27px minmax(0,1fr);padding:24px 0}.ffl-home-principles p{font-size:15px}.ffl-home-section-head{gap:15px;margin-bottom:29px}.ffl-home-section-head h2{margin-bottom:0}.ffl-home-service-grid{grid-template-columns:1fr;gap:16px}.ffl-home-service-card{padding:25px 24px;border-radius:14px}.ffl-home-card-top{margin-bottom:18px;gap:18px}.ffl-home-card-label{font-size:10px}.ffl-home-service-card h3{font-size:25px;margin-bottom:15px}.ffl-home-service-card>p{margin-bottom:20px}.ffl-home-service-topics{padding-top:18px!important}.ffl-home-service-topics li{font-size:14px}.ffl-home-service-bottom{align-items:flex-start;flex-direction:column;gap:13px;margin-top:24px}.ffl-home-service-bottom p{font-size:14px}.ffl-home-steps{grid-template-columns:1fr;gap:0;margin-top:30px!important}.ffl-home-steps li{display:grid;grid-template-columns:44px minmax(0,1fr);gap:19px;padding-bottom:30px}.ffl-home-steps li:last-child{padding-bottom:0}.ffl-home-step-number{width:44px;height:44px;margin-bottom:0;font-size:13px}.ffl-home-steps li:not(:last-child)::after{left:21px;top:53px;height:calc(100% - 62px);width:1px}.ffl-home-steps h3{font-size:19px;margin:5px 0 8px}.ffl-home-steps p{font-size:15px}}
@media(prefers-reduced-motion:reduce){.ffl-home-refine *{animation:none!important;transition:none!important}}

/* FLOW: one quiet pass from step 01 to 04. */
.ffl-home-steps li{--flow-line-delay:0ms}
.ffl-home-steps li:nth-child(2){--flow-line-delay:620ms}
.ffl-home-steps li:nth-child(3){--flow-line-delay:1240ms}
.ffl-home-steps.is-flow-ready li:not(:last-child)::after{z-index:-2}
.ffl-home-steps.is-flow-ready li:not(:last-child)::before{content:"";position:absolute;top:25px;left:62px;width:calc(100% - 40px);height:1px;background:var(--home-red);z-index:-1;transform:scaleX(0);transform-origin:left center;pointer-events:none}
.ffl-home-steps.is-flow-visible:not(.is-flow-complete) li:not(:last-child)::before{animation:ffl-flow-line-x 620ms linear var(--flow-line-delay) forwards}
.ffl-home-steps.is-flow-complete li:not(:last-child)::before{transform:none}
@keyframes ffl-flow-line-x{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes ffl-flow-line-y{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@media(max-width:760px){
  .ffl-home-steps.is-flow-ready li:not(:last-child)::before{left:21px;top:53px;height:calc(100% - 62px);width:1px;transform:scaleY(0);transform-origin:center top}
  .ffl-home-steps.is-flow-visible:not(.is-flow-complete) li:not(:last-child)::before{animation-name:ffl-flow-line-y}
  .ffl-home-steps.is-flow-complete li:not(:last-child)::before{transform:none}
}
@media(prefers-reduced-motion:reduce){.ffl-home-steps.is-flow-ready li:not(:last-child)::before{animation:none!important;transform:none}}
