/* Zoho Flow page only. Loaded via `extra: crm, p-flow`. Every class is scoped with .pxf- (never .pg-flow / .crm-flow). */
:root { --pxf-blue: #226DB4; --pxf-green: #009849; --pxf-wire: #9CC3DE; }

/* ---------- hero: integration canvas ---------- */
.pxf-hero .pxf-hero__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.pxf-hero__dots { position: absolute; inset: 0; z-index: -1; background-image: radial-gradient(rgba(34,109,180,.16) 1.2px, transparent 1.3px); background-size: 22px 22px; -webkit-mask-image: linear-gradient(90deg, transparent 30%, #000 75%); mask-image: linear-gradient(90deg, transparent 30%, #000 75%); pointer-events: none; }
.pxf-hero .crm-sub { max-width: 34ch; }
.pxf-tops { display: flex; flex-wrap: wrap; gap: 8px; margin: 22px 0 0; padding: 0; list-style: none; max-width: 580px; }
.pxf-tops li { display: inline-flex; align-items: center; gap: 8px; padding: 8px 13px 8px 9px; border-radius: 999px; background: #fff; border: 1px solid #DCE7EF; font: 600 13.5px/1.25 var(--f-body); color: #082238; box-shadow: 0 10px 20px -16px rgba(8,34,56,.5); }
.pxf-tops svg { flex: none; width: 22px; height: 22px; padding: 3px; border-radius: 7px; background: #E2F4EA; fill: none; stroke: var(--pxf-green); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

.pxf-canvas { position: relative; margin: 0; border-radius: 22px; background: #fff; border: 1px solid #DCE7EF; box-shadow: 0 50px 90px -50px rgba(8,34,56,.55); overflow: hidden; will-change: transform; }
.pxf-canvas__bar { display: flex; align-items: center; gap: 7px; padding: 12px 16px; border-bottom: 1px solid #E2E8F0; background: #F8FAFC; }
.pxf-canvas__bar span { width: 9px; height: 9px; border-radius: 50%; background: #E2E8F0; }
.pxf-canvas__bar b { margin-left: 8px; font: 700 13px/1 var(--f-display); color: #082238; }
.pxf-canvas__bar em, .pxf-b__bar em { margin-left: auto; padding: 4px 9px; border-radius: 999px; background: #EEF3F7; font: 600 11px/1 var(--f-body); font-style: normal; color: #64748B; }
.pxf-canvas__board { position: relative; aspect-ratio: 560 / 400; background-image: radial-gradient(#E3EBF2 1px, transparent 1.2px); background-size: 18px 18px; }
.pxf-canvas__svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.pxf-w { fill: none; stroke: #D3E0EA; stroke-width: 2.2; stroke-dasharray: 5 6; vector-effect: non-scaling-stroke; transition: stroke .4s, stroke-width .4s; }
.pxf-w.is-on { stroke: var(--pxf-green); stroke-width: 3; stroke-dasharray: none; }
.pxf-packet { fill: var(--pxf-green); filter: drop-shadow(0 0 4px rgba(0,152,73,.6)); }
.pxf-n, .pxf-hub { position: absolute; left: var(--x); top: var(--y); transform: translate(-50%, -50%); }
.pxf-n { display: grid; grid-template-columns: auto 1fr; column-gap: 8px; align-items: center; width: 21%; min-width: 0; padding: 8px 9px; border-radius: 12px; background: #fff; border: 1px solid #DCE7EF; box-shadow: 0 12px 22px -16px rgba(8,34,56,.55); transition: border-color .35s, box-shadow .35s, transform .35s; }
.pxf-n img, .pxf-n .pxf-mono { grid-row: span 2; width: 22px; height: 22px; object-fit: contain; }
.pxf-n b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: 700 12px/1.2 var(--f-display); color: #082238; }
.pxf-n small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: 500 10.5px/1.2 var(--f-body); color: #64748B; }
.pxf-n.is-on { border-color: var(--pxf-green); box-shadow: 0 0 0 3px rgba(0,152,73,.16), 0 14px 26px -16px rgba(8,34,56,.6); transform: translate(-50%, -50%) scale(1.04); }
.pxf-n.is-done::after { content: "✓"; position: absolute; right: -7px; top: -7px; display: grid; place-items: center; width: 18px; height: 18px; border-radius: 50%; background: var(--pxf-green); color: #fff; font: 800 10px/1 var(--f-body); }
.pxf-mono { display: inline-grid; place-items: center; border-radius: 6px; background: var(--c, #0A6FA8); color: #fff; font: 800 12px/1 var(--f-display); }
.pxf-hub { display: grid; justify-items: center; gap: 5px; width: 24%; padding: 12px 8px 10px; border-radius: 18px; background: linear-gradient(160deg, #0B2F52, #082238); color: #fff; box-shadow: 0 22px 40px -20px rgba(8,34,56,.8), 0 0 0 6px rgba(34,109,180,.1); text-align: center; }
.pxf-hub img { width: 34px; height: 34px; padding: 4px; border-radius: 10px; background: #fff; }
.pxf-hub b { font: 700 13px/1 var(--f-display); }
.pxf-hub__chip { padding: 4px 7px; border-radius: 999px; background: rgba(255,184,28,.18); color: #FFD677; font: 600 10px/1.2 var(--f-body); }
.pxf-canvas.is-pulse .pxf-hub { animation: pxfHub .7s ease 1; }
@keyframes pxfHub { 40% { box-shadow: 0 22px 40px -20px rgba(8,34,56,.8), 0 0 0 12px rgba(0,152,73,.25); } }
.pxf-canvas__log { display: flex; align-items: center; gap: 10px; padding: 12px 16px; border-top: 1px solid #E2E8F0; background: #F8FAFC; font: 500 12.5px/1.35 ui-monospace, SFMono-Regular, Menlo, monospace; color: #334155; min-height: 46px; }
.pxf-canvas__log i { flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--pxf-green); box-shadow: 0 0 0 4px rgba(0,152,73,.18); }
.pxf-canvas__log span { transition: opacity .3s; }
.pxf-canvas__log span.is-swap { opacity: 0; }

/* ---------- 01 Why Zoho Flow: edge cards as connected flow nodes ---------- */
.pxf-edges { position: relative; isolation: isolate; overflow-x: clip; }
.pxf-rail { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 44px 34px; margin: 48px 0 0; padding: 0; list-style: none; }
.pxf-rail::before, .pxf-rail::after { content: ""; position: absolute; left: 4%; right: 4%; height: 2px; z-index: -1; background: repeating-linear-gradient(90deg, var(--pxf-wire) 0 7px, transparent 7px 13px); background-size: 26px 2px; animation: pxfDash 1.6s linear infinite; }
.pxf-rail::before { top: 25%; } .pxf-rail::after { top: 75%; }
@keyframes pxfDash { to { background-position: 26px 0; } }
.pxf-edge { position: relative; display: flex; flex-direction: column; padding: 0 20px 22px; border-radius: 20px; background: #fff; border: 1px solid #E2E8F0; box-shadow: 0 30px 60px -48px rgba(8,34,56,.5); transition: transform .35s cubic-bezier(.2,.7,.1,1), border-color .35s, box-shadow .35s; }
.pxf-edge::before, .pxf-edge::after { content: ""; position: absolute; top: 50%; width: 12px; height: 12px; margin-top: -6px; border-radius: 50%; background: #fff; border: 2.5px solid var(--pxf-blue); }
.pxf-edge::before { left: -7px; } .pxf-edge::after { right: -7px; border-color: var(--pxf-green); }
.pxf-edge:hover { transform: translateY(-3px); border-color: #A9D8BE; box-shadow: 0 34px 60px -40px rgba(8,34,56,.5); }
.pxf-edge__tag { display: flex; align-items: center; gap: 8px; margin: 0 -20px 16px; padding: 10px 20px; border-bottom: 1px solid #EEF2F6; border-radius: 20px 20px 0 0; background: #F8FAFC; font: 700 11.5px/1 var(--f-body); letter-spacing: .08em; text-transform: uppercase; color: #64748B; }
.pxf-edge__tag i { width: 8px; height: 8px; border-radius: 3px; background: var(--pxf-green); }
.pxf-edge h3 { margin: 16px 0 8px; font: 700 19px/1.25 var(--f-display); letter-spacing: -.01em; color: #082238; }
.pxf-edge p { margin: 0; font-size: 15px; line-height: 1.55; color: #334155; }
.pxf-edge p a { color: var(--pxf-blue); font-weight: 600; }
.pxf-edge__chip { align-self: flex-start; margin-top: 14px; padding: 5px 10px; border-radius: 999px; background: #FFF1CC; font: 700 12px/1.2 var(--f-body); color: #7C4A03; }
.pxf-edge__vis { position: relative; display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 8px; min-height: 96px; padding: 14px; border-radius: 14px; background: #F3F7F9; overflow: hidden; }
.pxf-vis-apps img { width: 34px; height: 34px; padding: 6px; border-radius: 10px; background: #fff; border: 1px solid #E2E8F0; transform: translateY(8px); opacity: 0; transition: transform .5s cubic-bezier(.2,1.4,.4,1), opacity .4s; }
.pxf-vis-apps img:nth-child(2) { transition-delay: .07s; } .pxf-vis-apps img:nth-child(3) { transition-delay: .14s; } .pxf-vis-apps img:nth-child(4) { transition-delay: .21s; } .pxf-vis-apps img:nth-child(5) { transition-delay: .28s; }
.pxf-vis-apps b { padding: 8px 10px; border-radius: 10px; background: #082238; color: #fff; font: 800 14px/1 var(--f-display); }
.pxf-in .pxf-vis-apps img { transform: none; opacity: 1; }
.pxf-vis-meter { flex-direction: column; align-items: stretch !important; gap: 6px !important; }
.pxf-vis-meter span { height: 12px; border-radius: 999px; background: #E2E8F0; overflow: hidden; }
.pxf-vis-meter span i { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--pxf-blue), var(--pxf-green)); transition: width 1.2s cubic-bezier(.2,.7,.1,1); }
.pxf-in .pxf-vis-meter span i { width: var(--w); }
.pxf-vis-meter b { font: 800 20px/1 var(--f-display); color: #082238; }
.pxf-vis-meter small { font: 600 12px/1 var(--f-body); color: #64748B; }
.pxf-vis-code { justify-content: flex-start !important; background: #0B1F33 !important; }
.pxf-vis-code code { font: 500 12.5px/1.65 ui-monospace, SFMono-Regular, Menlo, monospace; color: #CFE0EE; }
.pxf-vis-code i { font-style: normal; color: #7DD3FC; } .pxf-vis-code s { text-decoration: none; color: #86EFAC; } .pxf-vis-code u { text-decoration: none; color: #FDBA74; }
.pxf-vis-prem { flex-wrap: nowrap !important; gap: 4px !important; }
.pxf-vis-prem span { padding: 8px 9px; border-radius: 9px; background: #fff; border: 1px solid #E2E8F0; font: 700 11.5px/1 var(--f-body); color: #082238; white-space: nowrap; }
.pxf-vis-prem__wall { background: repeating-linear-gradient(135deg, #FEE2E2 0 6px, #fff 6px 12px) !important; border-color: #FCA5A5 !important; color: #991B1B !important; }
.pxf-vis-prem i { flex: 1 1 14px; min-width: 10px; height: 2px; background: repeating-linear-gradient(90deg, var(--pxf-green) 0 4px, transparent 4px 7px); background-size: 14px 2px; animation: pxfDash 1s linear infinite; }
.pxf-vis-zia { flex-direction: column; gap: 8px !important; }
.pxf-vis-zia p { margin: 0 !important; padding: 8px 11px; border-radius: 12px 12px 12px 4px; background: #fff; border: 1px solid #E2E8F0; font-size: 12.5px !important; line-height: 1.4 !important; color: #082238 !important; }
.pxf-vis-zia span { display: inline-block; margin: 0 2px; padding: 4px 8px; border-radius: 999px; background: #E2F4EA; font: 700 11px/1 var(--f-body); color: #0B6B37; opacity: 0; transform: scale(.8); transition: opacity .4s, transform .4s cubic-bezier(.2,1.5,.4,1); }
.pxf-vis-zia span:nth-of-type(2) { transition-delay: .25s; } .pxf-vis-zia span:nth-of-type(3) { transition-delay: .5s; }
.pxf-in .pxf-vis-zia span { opacity: 1; transform: none; }
.pxf-vis-hist { flex-direction: column; align-items: stretch !important; gap: 5px !important; }
.pxf-vis-hist span { padding: 6px 10px; border-radius: 8px; background: #fff; border-left: 3px solid #94A3B8; font: 600 11.5px/1.2 ui-monospace, SFMono-Regular, Menlo, monospace; color: #334155; }
.pxf-vis-hist .ok { border-color: var(--pxf-green); } .pxf-vis-hist .bad { border-color: #DC2626; } .pxf-vis-hist .re { border-color: #F59E0B; color: #92400E; }
.pxf-edges__more { margin: 28px 0 0; max-width: 72ch; font-size: 16px; line-height: 1.6; color: #334155; }
.pxf-edges__more a { color: var(--pxf-blue); font-weight: 600; }
.pxf-edge[data-pxf-rv] { opacity: 0; transform: translateY(26px); transition: opacity .6s ease var(--d, 0s), transform .7s cubic-bezier(.2,.7,.1,1) var(--d, 0s), border-color .35s, box-shadow .35s; }
.pxf-edge[data-pxf-rv].pxf-in { opacity: 1; transform: none; }

/* ---------- 02 one order: wire path story ---------- */
.pxf-run__board { position: relative; margin-top: 48px; }
.pxf-run__svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; display: none; }
.pxf-run__base { fill: none; stroke: #DCE7EF; stroke-width: 2.5; stroke-dasharray: 6 7; }
.pxf-run__live { fill: none; stroke: var(--pxf-green); stroke-width: 3.5; stroke-linecap: round; }
.pxf-run__dot { fill: #fff; stroke: var(--pxf-green); stroke-width: 4; filter: drop-shadow(0 0 6px rgba(0,152,73,.5)); }
.pxf-run__steps { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 34px 18%; margin: 0; padding: 0; list-style: none; }
.pxf-st { position: relative; padding: 18px 20px 18px; border-radius: 18px; background: #fff; border: 1px solid #E2E8F0; box-shadow: 0 26px 50px -42px rgba(8,34,56,.55); transition: border-color .4s, box-shadow .4s, opacity .4s, transform .5s cubic-bezier(.2,.7,.1,1); }
.pxf-st:nth-child(even) { transform: translateY(70px); }
.pxf-run__steps { padding-bottom: 70px; }
.pxf-st__type { display: inline-flex; margin: 0 0 12px; padding: 5px 10px; border-radius: 999px; background: #E3F1FB; font: 700 11px/1 var(--f-body); letter-spacing: .06em; text-transform: uppercase; color: #0A6FA8; }
.pxf-st__type--trig { background: #E2F4EA; color: #0B6B37; } .pxf-st__type--dec { background: #FFF1CC; color: #92400E; } .pxf-st__type--log { background: #EEF3F7; color: #334155; }
.pxf-st__head { display: flex; align-items: center; gap: 12px; }
.pxf-st__head img, .pxf-st__head .pxf-mono, .pxf-st__ic { flex: none; width: 28px; height: 28px; object-fit: contain; }
.pxf-st__head .pxf-mono { font-size: 14px; border-radius: 8px; }
.pxf-st__ic { display: grid; place-items: center; border-radius: 8px; background: #FFF1CC; }
.pxf-st__ic svg { width: 18px; height: 18px; fill: none; stroke: #B45309; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.pxf-st h3 { margin: 0; font: 700 18px/1.25 var(--f-display); color: #082238; }
.pxf-st > p:not([class]) { margin: 10px 0 0; font-size: 15px; line-height: 1.55; color: #334155; }
.pxf-st__cfg { display: flex; flex-wrap: wrap; gap: 6px; margin: 12px 0 0; }
.pxf-st__cfg span { padding: 5px 9px; border-radius: 8px; background: #F3F7F9; border: 1px solid #E2E8F0; font: 600 11.5px/1.2 ui-monospace, SFMono-Regular, Menlo, monospace; color: #334155; }
.pxf-st__cfg .ok { background: #E2F4EA; border-color: #A9D8BE; color: #0B6B37; }
.pxf-run__board.is-js .pxf-run__svg { display: block; }
.pxf-run__board.is-js .pxf-st { opacity: .45; }
.pxf-run__board.is-js .pxf-st.is-on { opacity: 1; border-color: #A9D8BE; box-shadow: 0 0 0 3px rgba(0,152,73,.12), 0 26px 50px -36px rgba(8,34,56,.6); }

/* ---------- signature: build a flow (dark band) ---------- */
.pxf-b { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: clamp(20px, 3vw, 36px); margin-top: 40px; align-items: start; }
.pxf-b__panel { display: grid; gap: 18px; padding: 22px; border-radius: 22px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14); }
.pxf-b__grp { display: grid; gap: 10px; }
.pxf-b__lbl { margin: 0; font: 700 14px/1.2 var(--f-display); color: #fff; }
.pxf-b__lbl small { font: 500 12px/1 var(--f-body); color: #9FB7CB; }
.pxf-b__opts { display: flex; flex-wrap: wrap; gap: 8px; }
.pxf-opt { display: inline-flex; align-items: center; gap: 8px; padding: 9px 12px; border-radius: 12px; border: 1px solid rgba(255,255,255,.2); background: rgba(255,255,255,.05); font: 600 13px/1.2 var(--f-body); color: #DCE8F2; cursor: pointer; text-align: left; transition: background .2s, border-color .2s, color .2s, transform .2s; }
.pxf-opt img { width: 18px; height: 18px; padding: 2px; border-radius: 5px; background: #fff; object-fit: contain; }
.pxf-opt__i { display: inline-grid; place-items: center; width: 18px; height: 18px; border-radius: 5px; background: #fff; color: #082238; font: 800 11px/1 var(--f-body); }
.pxf-opt__i--s { background: #4A154B; color: #fff; } .pxf-opt__i--g { background: #0F9D58; color: #fff; }
.pxf-opt:hover { border-color: rgba(255,255,255,.45); }
.pxf-opt:focus-visible { outline: 2px solid #FFB81C; outline-offset: 2px; }
.pxf-opt[aria-pressed="true"] { background: #fff; border-color: #fff; color: #082238; }
.pxf-opt--dec[aria-pressed="true"] { background: #FFB81C; border-color: #FFB81C; }
.pxf-opt.is-no { animation: pxfNo .4s ease; }
@keyframes pxfNo { 25% { transform: translateX(-4px); } 75% { transform: translateX(4px); } }
.pxf-b__range { display: grid; grid-template-columns: 1fr auto; gap: 8px 12px; align-items: center; font: 700 14px/1.2 var(--f-display); color: #fff; }
.pxf-b__range span { grid-column: 1 / -1; }
.pxf-b__range input { width: 100%; accent-color: #FFB81C; }
.pxf-b__range output { min-width: 64px; padding: 6px 10px; border-radius: 9px; background: rgba(255,255,255,.1); font: 700 14px/1 var(--f-body); text-align: center; color: #fff; font-variant-numeric: tabular-nums; }
.pxf-b__btns { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.pxf-b__reset { padding: 12px 16px; border-radius: 12px; border: 1px solid rgba(255,255,255,.3); background: none; font: 600 14px/1 var(--f-body); color: #DCE8F2; cursor: pointer; }
.pxf-b__reset:hover { border-color: #fff; color: #fff; }
.pxf-b__canvas { padding: 0 0 18px; border-radius: 22px; background: #fff; box-shadow: 0 40px 80px -40px rgba(0,0,0,.6); overflow: hidden; }
.pxf-b__bar { display: flex; align-items: center; gap: 8px; padding: 12px 16px; border-bottom: 1px solid #E2E8F0; background: #F8FAFC; }
.pxf-b__bar b { font: 700 13px/1 var(--f-display); color: #082238; }
.pxf-b__nodes { position: relative; display: grid; justify-items: center; gap: 22px; margin: 0; padding: 22px 18px 6px; list-style: none; background-image: radial-gradient(#E3EBF2 1px, transparent 1.2px); background-size: 18px 18px; min-height: 250px; }
.pxf-bn { position: relative; display: grid; grid-template-columns: auto 1fr auto; gap: 10px; align-items: center; width: min(100%, 340px); padding: 10px 12px; border-radius: 13px; background: #fff; border: 1.5px solid #DCE7EF; box-shadow: 0 12px 22px -18px rgba(8,34,56,.6); animation: pxfIn .35s cubic-bezier(.2,1.3,.4,1); transition: border-color .3s, box-shadow .3s; }
.pxf-bn + .pxf-bn::before { content: ""; position: absolute; left: 50%; bottom: 100%; width: 2px; height: 22px; margin-left: -1px; background: repeating-linear-gradient(180deg, #B6CCDD 0 4px, transparent 4px 7px); }
.pxf-bn img, .pxf-bn .pxf-opt__i { width: 24px; height: 24px; object-fit: contain; }
.pxf-bn b { display: block; font: 700 13px/1.2 var(--f-display); color: #082238; }
.pxf-bn small { display: block; font: 600 10.5px/1.2 var(--f-body); letter-spacing: .06em; text-transform: uppercase; color: #64748B; }
.pxf-bn em { font: 700 11px/1 var(--f-body); font-style: normal; color: #94A3B8; }
.pxf-bn--trig { border-color: #A9D8BE; } .pxf-bn--dec { border-color: #FCD679; background: #FFFBEB; }
.pxf-bn.is-run { border-color: var(--pxf-green); box-shadow: 0 0 0 4px rgba(0,152,73,.16); }
.pxf-bn.is-run + .pxf-bn::before { background: var(--pxf-green); }
.pxf-bn.is-ok em { color: var(--pxf-green); }
@keyframes pxfIn { from { opacity: 0; transform: translateY(-8px) scale(.96); } }
.pxf-b__log { margin: 14px 18px 0; padding: 12px 14px; border-radius: 12px; background: #0B1F33; font: 500 13px/1.5 ui-monospace, SFMono-Regular, Menlo, monospace; color: #CFE0EE; min-height: 46px; }
.pxf-b__log b { color: #86EFAC; font-weight: 700; }
.pxf-b__est { margin: 12px 18px 0; padding: 14px; border-radius: 14px; background: #F3F7F9; font-size: 14px; line-height: 1.5; color: #334155; }
.pxf-b__est:empty { display: none; }
.pxf-b__est strong { display: block; margin-bottom: 4px; font: 800 20px/1.2 var(--f-display); color: #082238; }
.pxf-b__est b { color: #082238; }

/* ---------- pricing: plan picker ---------- */
.pxf-p { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 20px; margin: 40px 0 28px; }
.pxf-p__ctl { display: grid; gap: 18px; padding: 24px; border-radius: 22px; background: #fff; border: 1px solid #E2E8F0; box-shadow: 0 30px 60px -48px rgba(8,34,56,.5); }
.pxf-p__f { display: grid; gap: 9px; }
.pxf-p__f > span { font: 700 14px/1.2 var(--f-display); color: #082238; }
label.pxf-p__f { grid-template-columns: 1fr auto; align-items: center; }
label.pxf-p__f > span { grid-column: 1 / -1; }
.pxf-p__f input[type=range] { width: 100%; accent-color: var(--pxf-green); }
.pxf-p__f output { min-width: 92px; padding: 7px 10px; border-radius: 10px; background: #EEF3F7; font: 700 14px/1 var(--f-body); text-align: center; color: #082238; font-variant-numeric: tabular-nums; }
.pxf-p__f input:disabled { opacity: .4; }
.pxf-p__feat { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 16px; margin: 0; padding: 14px 0 0; border-top: 1px dashed #E2E8F0; list-style: none; }
.pxf-p__feat li { display: flex; gap: 8px; font-size: 14px; line-height: 1.4; color: #334155; }
.pxf-p__feat li::before { content: "✓"; flex: none; font-weight: 800; color: var(--pxf-green); }
.pxf-p__feat li.is-off { color: #94A3B8; }
.pxf-p__feat li.is-off::before { content: "–"; color: #CBD5E1; }
.pxf-p__out { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 26px; border-radius: 22px; background: linear-gradient(150deg, #082238, #0A3A63 60%, #07605E); color: #BFD3E2; }
.pxf-p__plan { margin: 0; font: 700 14px/1.2 var(--f-body); letter-spacing: .06em; text-transform: uppercase; color: #9FE3BF; }
.pxf-p__amt { display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px; margin: 0; }
.pxf-p__amt b { font: 800 clamp(40px, 1.6rem + 2vw, 56px)/1 var(--f-display); letter-spacing: -.02em; color: #fff; }
.pxf-p__amt span { font-size: 15px; }
.pxf-p__yr { margin: 0; font-size: 15px; line-height: 1.5; color: #E2EDF5; }
.pxf-p__note { margin: 0 0 10px; font-size: 14px; line-height: 1.5; color: #BFD3E2; }
.pxf-p__note:empty { display: none; }
.pxf-p__out .btn { margin-top: auto; }

/* ---------- compare ---------- */
.pxf-vs__grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: clamp(20px, 3vw, 40px); margin-top: 36px; align-items: start; }
.pxf-vs__fair { margin: 0; padding: 20px 22px; }
.pxf-vs__fair h3 { margin: 0 0 10px; font: 700 18px/1.3 var(--f-display); color: #082238; }
.pxf-vs__fair p { margin: 0; }

/* ---------- responsive ---------- */
@media (max-width: 1100px) {
  .pxf-rail { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pxf-rail::before { top: 17%; } .pxf-rail::after { top: 50%; }
}
@media (max-width: 980px) {
  .pxf-hero .pxf-hero__grid { grid-template-columns: 1fr; }
  .pxf-canvas { max-width: 620px; }
  .pxf-b, .pxf-p, .pxf-vs__grid { grid-template-columns: 1fr; }
  .pxf-run__steps { grid-template-columns: 1fr; gap: 18px; padding: 0 0 0 26px; }
  .pxf-run__steps::before { content: ""; position: absolute; left: 6px; top: 10px; bottom: 10px; width: 2px; background: repeating-linear-gradient(180deg, #A9D8BE 0 6px, transparent 6px 11px); }
  .pxf-st:nth-child(even) { transform: none; }
  .pxf-st::before { content: ""; position: absolute; left: -26px; top: 24px; width: 12px; height: 12px; border-radius: 50%; background: #fff; border: 3px solid var(--pxf-green); }
  .pxf-run__board.is-js .pxf-st { opacity: 1; }
}
@media (max-width: 640px) {
  .pxf-rail { grid-template-columns: 1fr; gap: 26px; }
  .pxf-rail::before, .pxf-rail::after { display: none; }
  .pxf-edge::before, .pxf-edge::after { display: none; }
  .pxf-edge + .pxf-edge { margin-top: 0; }
  .pxf-n { width: 27%; padding: 5px 6px; column-gap: 5px; border-radius: 9px; }
  .pxf-n--t, .pxf-n--t.is-on { left: 1.5%; transform: translate(0, -50%); }
  .pxf-n--a, .pxf-n--a.is-on { left: auto; right: 1.5%; transform: translate(0, -50%); }
  .pxf-n img, .pxf-n .pxf-mono { width: 16px; height: 16px; font-size: 9px; border-radius: 4px; }
  .pxf-n b { font-size: 9.5px; } .pxf-n small { font-size: 8.5px; }
  .pxf-hub { width: 27%; padding: 8px 4px; border-radius: 13px; gap: 3px; }
  .pxf-hub img { width: 24px; height: 24px; padding: 3px; }
  .pxf-hub b { font-size: 10.5px; } .pxf-hub__chip { font-size: 8px; padding: 3px 5px; }
  .pxf-canvas__log { font-size: 11px; }
  .pxf-p__feat { grid-template-columns: 1fr; }
  .pxf-p__ctl, .pxf-p__out, .pxf-b__panel { padding: 18px; }
  .pxf-vis-prem span { padding: 7px 6px; font-size: 10.5px; }
}
@media (prefers-reduced-motion: reduce) {
  .pxf-rail::before, .pxf-rail::after, .pxf-vis-prem i { animation: none; }
  .pxf-edge[data-pxf-rv] { opacity: 1; transform: none; transition: none; }
  .pxf-vis-apps img, .pxf-vis-zia span { opacity: 1; transform: none; transition: none; }
  .pxf-vis-meter span i { width: var(--w); transition: none; }
  .pxf-bn { animation: none; }
}
