/* ==========================================================
   히어로 C · 문의 누수 흐름 (메인 히어로 · heroes.html 라이브러리 공용)
   Canvas 2D 입자가 노출 → 방문 → 문의 → 상담 단계를 지나며
   단계마다 빠져나가는 모습을 보여줍니다. 게이트 위치는 DOM이 정하고
   flow.js가 그 좌표를 읽어 캔버스에 그립니다.
   ========================================================== */

.lf{--hdr:68px;--coral:#f2a58f;position:relative;display:flex;flex-direction:column;min-height:calc(100svh - var(--hdr));overflow:hidden;isolation:isolate;color:#eef2ea;background:radial-gradient(70% 90% at 76% 55%,#18342a 0%,#0b1813 72%)}
.lf-canvas{position:absolute;inset:0;z-index:0;width:100%;height:100%;pointer-events:none}
.lf-in{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:48px;align-items:center;flex:1;padding-block:56px 48px}

/* ---- 카피 ---- */
.lf-kicker{display:inline-flex;align-items:center;gap:10px;font-size:13px;font-weight:600;color:#a9bbb0;margin-bottom:24px}
.lf-copy :is(h1,h2){font-size:clamp(36px,3.9vw,58px);line-height:1.25;font-weight:700;letter-spacing:-.065em;color:#fff}
.lf-copy :is(h1,h2) em{color:var(--lime)}
.lf-sub{margin-top:24px;font-size:16px;line-height:1.85;color:#a9bbb0;max-width:440px;text-wrap:pretty}

.lf-switch{display:inline-flex;gap:4px;margin-top:34px;padding:4px;border:1px solid #ffffff1f;border-radius:999px;background:#ffffff0a;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.lf-switch button{border:0;background:none;border-radius:999px;padding:10px 18px;font-size:13px;font-weight:700;color:#a9bbb0;transition:background .3s,color .3s}
.lf-switch button:hover{color:#fff}
.lf-switch button[aria-pressed="true"]{background:#eef2ea;color:var(--forest)}
.lf-switch button[data-mode="one"][aria-pressed="true"]{background:var(--lime)}
/* 메인 히어로: 비교 버튼을 흐름 그래프 폭에 맞춘 상단 바로 둠 */
.lf-flow .lf-switch{position:absolute;left:0;right:0;bottom:100%;z-index:2;display:grid;grid-template-columns:1fr 1fr;margin:0 0 18px;border-radius:14px}
.lf-flow .lf-switch button{position:relative;overflow:hidden;border-radius:10px}
.lf-switch.is-auto button[aria-pressed="true"]:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:currentColor;opacity:.35;transform-origin:left;animation:lf-auto 3s linear}
@keyframes lf-auto{from{transform:scaleX(0)}}
.lf-actions{display:flex;align-items:center;gap:24px;margin-top:26px;flex-wrap:wrap}
.lf-link{font-size:14px;font-weight:700;border-bottom:1px solid #eef2ea66;padding-bottom:2px}
.lf-link:hover{color:var(--lime)}

/* ---- 흐름 영역과 게이트 ---- */
.lf-flow{position:relative;height:min(460px,58vh)}
.lf-gates{position:absolute;inset:0;display:grid;grid-template-columns:repeat(4,1fr);list-style:none;margin:0;padding:0}
.lf-gate{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:space-between;text-align:center}
.lf-gate:before{content:"";position:absolute;left:50%;top:42px;bottom:70px;width:1px;background:linear-gradient(#ffffff00,#ffffff3d 30% 70%,#ffffff00)}
.lf-gate b{position:relative;padding:6px 14px;border:1px solid #ffffff2b;border-radius:999px;background:#0b1813d9;font-size:15px;font-weight:700;line-height:1.5}
.lf-gate b small{display:block;font-size:10px;font-weight:600;letter-spacing:.14em;color:#7f968a}
.lf-why{position:relative;max-width:132px;min-height:40px;font-size:12px;font-weight:600;line-height:1.5;color:var(--coral);text-wrap:balance;word-break:keep-all;transition:color .4s}
.lf-why span+span{display:none}
.lf.is-one .lf-why{color:var(--lime)}
.lf.is-one .lf-why span{display:none}
.lf.is-one .lf-why span+span{display:inline}
.lf-note{position:absolute;right:0;bottom:-30px;font-size:11px;color:#6f8577}

/* ---- 성장 결과 (흐름이 모이는 지점, MSO 도입 후에만 표시) ---- */
.lf-goal{position:absolute;right:0;top:calc(50% - 118px);display:grid;grid-template-columns:auto auto;column-gap:16px;align-items:center;margin:0;text-align:right;opacity:0;transform:translateY(8px);transition:opacity .5s,transform .5s}
.lf.is-one .lf-goal{opacity:1;transform:none}
.lf-goal small{grid-column:1;display:block;font-size:10px;font-weight:600;letter-spacing:.14em;color:#9fb48f}
.lf-goal b{grid-column:1;display:block;margin-top:6px;font-size:17px;font-weight:700;line-height:1.4;letter-spacing:-.03em;color:var(--lime)}
.lf-rise{grid-row:1;grid-column:2;width:49px;height:16px;fill:none;stroke:var(--lime);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.lf-rise path{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset .6s}
.lf.is-one .lf-rise path{stroke-dashoffset:0;transition-delay:.4s}
.lf.is-one .lf-rise path+path{transition-delay:.9s}
.lf-dots{grid-row:2;grid-column:2;display:grid;grid-template-columns:repeat(5,5px);gap:6px;margin-top:6px}
.lf-dots span{width:5px;height:5px;border-radius:50%;background:#ffffff2e;transition:background .4s,box-shadow .4s,transform .4s}
.lf.is-one .lf-dots span{background:var(--lime);box-shadow:0 0 8px var(--lime);transform:scale(1.3);transition-delay:calc(.3s + var(--i) * .1s)}

/* ---- 대표자 경험 줄 (메인 히어로 하단) ---- */
.lf-proof{position:relative;z-index:1;padding-block:24px 26px;border-top:1px solid #ffffff1a}
.lf-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;margin:0;padding:0}
.lf-stats li{display:flex;align-items:center;gap:14px;padding-inline:24px;border-left:1px solid #ffffff14}
.lf-stats li:first-child{padding-left:0;border-left:0}
.lf-ico{flex:none;display:grid;place-items:center;width:48px;height:48px;border:1px solid #ffffff17;border-radius:12px;background:#ffffff08;color:var(--lime)}
.lf-ico svg{width:26px;height:26px;fill:currentColor}
.lf-ico .mute{fill:#ffffff40}
.lf-ico .mute-line{fill:none;stroke:#ffffff47;stroke-width:1.5}
.lf-stats p{display:flex;flex-direction:column;gap:5px;min-width:0;margin:0}
.lf-stats b{font-size:22px;font-weight:700;line-height:1.25;letter-spacing:-.03em;color:#fff;white-space:nowrap}
.lf-stats em{font-style:normal;color:var(--lime)}
.lf-stats small{font-size:12px;line-height:1.4;color:#8fa497}
.lf-proof-note{margin-top:18px;font-size:10.5px;line-height:1.6;color:#6f8577}

/* ---- 태블릿·모바일 ---- */
@media(max-width:1150px){
  .lf-in{gap:28px}
  .lf-stats li{gap:12px;padding-inline:16px}
  .lf-ico{width:40px;height:40px;border-radius:10px}
  .lf-ico svg{width:22px;height:22px}
  .lf-stats b{font-size:19px}
  .lf-stats small{font-size:11.5px}
  .lf-why{max-width:104px;font-size:11px}
}
@media(max-width:850px){
  .lf{--hdr:60px;min-height:0}
  .lf-in{grid-template-columns:1fr;padding-block:52px 64px;gap:96px}
  .lf-stats{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:22px}
  .lf-stats li:nth-child(odd){padding-left:0;border-left:0}
  .lf-sub{max-width:none}
  .lf-flow{height:320px}
}
@media(max-width:600px){
  .lf-in{padding-block:40px 56px;gap:80px}
  .lf-proof{padding-block:16px 40px}
  .lf-stats{grid-template-columns:1fr;row-gap:0}
  .lf-stats li{gap:12px;padding:10px 0;border-left:0;border-top:1px solid #ffffff12}
  .lf-stats li:first-child{border-top:0;padding-top:4px}
  .lf-ico{width:36px;height:36px;border-radius:10px}
  .lf-ico svg{width:20px;height:20px}
  .lf-stats p{flex:1;flex-direction:row;align-items:baseline;justify-content:space-between;gap:10px}
  .lf-stats b{order:2;font-size:18px}
  .lf-proof-note{margin-top:12px}
  .lf-kicker{font-size:12px;margin-bottom:16px}
  .lf-copy :is(h1,h2){font-size:clamp(29px,8vw,34px)}
  .lf-sub{font-size:15px;margin-top:18px}
  .lf-switch{margin-top:24px}
  .lf-switch button{padding:9px 13px;font-size:12px}
  .lf-actions{display:none}
  .lf-flow{height:290px}
  .lf-gate:before{top:40px;bottom:60px}
  .lf-gate b{padding:5px 10px;font-size:13px}
  .lf-gate b small{display:none}
  .lf-why{max-width:70px;min-height:48px;font-size:10.5px}
  .lf-note{left:0;right:auto;bottom:-34px;font-size:10px}
  .lf-goal{top:calc(50% - 94px);column-gap:12px}
  .lf-goal small{font-size:9px}
  .lf-goal b{margin-top:4px;font-size:14px}
  .lf-dots{grid-template-columns:repeat(5,4px);gap:5px;margin-top:4px}
  .lf-dots span{width:4px;height:4px}
  .lf-rise{width:40px;height:13px}
}
