/* Shared service-page components: fs- (SaaS generation) and cm- (CMS generation). */

/* ===== Full-Stack / SaaS page. Tokens, buttons, header, footer and sf- primitives come from the shared stylesheet above. ===== */
.fs-page code{font:10.5px/1.6 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.fs-wash{background:var(--wash);border-block:1px solid var(--line)}
.fs-inline{color:var(--green);text-decoration:underline;text-decoration-color:var(--orange);text-underline-offset:4px}
.fs-page .sf-proof-note a:hover{color:var(--orange)}
.fs-tags{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:12px 0 0}
.fs-tags li{font-size:12px;line-height:1.4;color:var(--green);background:var(--wash);border:1px solid var(--line);padding:4px 9px;border-radius:3px}

/* Hero system */
.fs-hero-grid{grid-template-columns:.82fr 1.18fr}
.fs-hero h1{max-width:590px}
.fs-system{border:1px solid var(--line);border-radius:5px;background:#fff;box-shadow:0 20px 50px #1d54420c;overflow:hidden;min-width:0}
.fs-system-body{display:grid;grid-template-columns:1.22fr .95fr;min-height:410px}
.fs-app{display:grid;grid-template-columns:88px minmax(0,1fr);border-right:1px solid var(--line);min-width:0}
.fs-app aside{background:var(--sf-paper);border-right:1px solid var(--line);padding:16px 9px;font-size:10px;color:var(--gray)}
.fs-app aside strong{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--green);margin:0 0 18px 5px}
.fs-app aside strong i{width:13px;height:13px;border-radius:3px;background:var(--green);box-shadow:inset -5px -5px 0 var(--orange)}
.fs-app aside span{display:block;padding:7px 6px;border-radius:3px}
.fs-app aside .on{background:#fff;color:var(--green);box-shadow:inset 2px 0 0 var(--orange)}
.fs-app-main{padding:16px;min-width:0}
.fs-app-top{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:11px;color:var(--green)}
.fs-role{font-size:9px;border:1px solid var(--line);padding:3px 8px;border-radius:20px;background:var(--wash)}
.fs-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:14px 0}
.fs-kpis div{border:1px solid var(--line);border-radius:4px;padding:9px}
.fs-kpis small{display:block;font-size:9px;color:var(--gray)}
.fs-kpis b{display:block;font-size:19px;font-weight:600;letter-spacing:-.03em;margin:3px 0 1px;font-variant-numeric:tabular-nums;transition:color .4s}
.fs-kpis b.bump{color:var(--orange)}
.fs-kpis em{font-size:9px}
.fs-chart{border:1px solid var(--line);border-radius:4px;padding:10px 10px 6px}
.fs-chart svg{display:block;width:100%;height:88px;overflow:visible}
.fs-events{list-style:none;margin:10px 0 0;padding:0;font-size:10px}
.fs-events li{display:flex;justify-content:space-between;gap:8px;padding:6px 0;border-top:1px solid var(--line);color:var(--gray)}
.fs-events b{font-weight:500;color:var(--ink)}
.fs-events li.new{animation:sf-appear .4s ease}
.fs-trace{list-style:none;margin:0;padding:16px 16px 16px 42px;position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:6px;background:linear-gradient(#fff,var(--wash));min-width:0}
.fs-trace:before{content:'';position:absolute;left:25px;top:30px;bottom:30px;width:1px;background:rgba(29,84,66,.3)}
.fs-trace li{position:relative;padding:9px 10px;border:1px solid transparent;border-radius:4px;transition:border-color .3s,background .3s,box-shadow .3s}
.fs-trace li:before{content:'';position:absolute;left:-20px;top:15px;width:5px;height:5px;border-radius:50%;background:#fff;border:1px solid var(--green)}
.fs-trace li.is-active{border-color:var(--line);background:#fff;box-shadow:0 6px 16px #1d54420f}
.fs-trace li.is-done:before{background:var(--green)}
.fs-trace-head{display:flex;align-items:center;gap:8px;color:var(--green)}
.fs-trace-head .ico{width:16px;height:16px}
.fs-trace strong{font-size:13px;font-weight:600;white-space:nowrap}
.fs-trace small{margin-left:auto;font-size:9px;color:var(--gray);white-space:nowrap}
.fs-trace code{display:block;margin:4px 0 0 24px;color:var(--gray);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fs-trace li.is-active code{color:var(--green)}
.fs-packet{position:absolute;left:22px;top:24px;width:7px;height:7px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 4px #ef602426;transition:top .55s cubic-bezier(.4,0,.2,1)}
.fs-system-foot{display:flex;align-items:center;gap:9px;border-top:1px solid var(--line);background:var(--wash);padding:12px 15px;font-size:11px;color:var(--green)}
.fs-system-foot>span:last-child{margin-left:auto;font-size:9px;color:var(--gray)}

/* 01 What we build */
.fs-build-layout{display:grid;grid-template-columns:.92fr 1.08fr;gap:55px;align-items:start}
.fs-type{border-top:1px solid var(--line);padding:18px 0}
.fs-type:last-child{border-bottom:1px solid var(--line)}
.fs-page .fs-type h3{font-size:inherit;line-height:1}
.fs-type button{display:flex;align-items:center;gap:14px;width:100%;background:none;border:0;padding:0;text-align:left;color:var(--green);min-height:40px}
.fs-type button .ico{width:22px;height:22px}
.fs-type button span{font-size:23px;font-weight:550;letter-spacing:-.02em;line-height:1.2}
.fs-type button:after{content:'↗';margin-left:auto;color:var(--orange);font-size:20px;transition:transform .2s}
.fs-type button[aria-pressed=true] span{text-decoration:underline;text-decoration-color:var(--orange);text-underline-offset:7px;text-decoration-thickness:2px}
.fs-type button[aria-pressed=true]:after{transform:rotate(45deg)}
.fs-page .fs-type p{font-size:15px;margin:8px 0 0 36px}
.fs-type .fs-tags{margin-left:36px}
.fs-type-stage{position:sticky;top:170px;border:1px solid var(--line);border-radius:5px;background:#fff;overflow:hidden;box-shadow:0 18px 44px #1d54420a}
.fs-preview{padding:24px;background:var(--wash);min-height:318px}
.fs-screen{display:none;background:#fff;border:1px solid var(--line);border-radius:4px;box-shadow:0 12px 30px #1d54420f}
.fs-type-stage[data-type="0"] [data-preview="0"],.fs-type-stage[data-type="1"] [data-preview="1"],.fs-type-stage[data-type="2"] [data-preview="2"],.fs-type-stage[data-type="3"] [data-preview="3"],.fs-type-stage[data-type="4"] [data-preview="4"]{display:block;animation:sf-appear .3s ease}
.fs-screen-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 15px;border-bottom:1px solid var(--line);font-size:12px;font-weight:600;color:var(--green)}
.fs-screen-bar small{font-size:10px;font-weight:400;color:var(--gray)}
.fs-screen-body{padding:15px}
.fs-row{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--line);font-size:12px;color:var(--gray)}
.fs-row b{font-weight:500;color:var(--green);text-align:right}
.fs-screen-body>.fs-row:last-child{margin-top:12px}
.fs-switch{display:grid;gap:5px;margin-bottom:14px}
.fs-switch span{display:flex;justify-content:space-between;font-size:12px;padding:7px 10px;border:1px solid var(--line);border-radius:3px}
.fs-switch span.on{border-color:var(--green);color:var(--green);box-shadow:inset 2px 0 0 var(--orange)}
.fs-switch small{font-size:10px;color:var(--gray)}
.fs-meters,.fs-usage{display:grid;gap:10px}
.fs-meters span,.fs-usage span{display:flex;justify-content:space-between;font-size:11px;color:var(--gray);margin-bottom:5px}
.fs-meters b,.fs-usage b{font-weight:500;color:var(--ink)}
.fs-meters i,.fs-usage i{display:block;height:5px;border-radius:3px;background:linear-gradient(90deg,var(--green) var(--v),rgba(29,84,66,.1) var(--v));transition:background .5s}
.fs-kanban{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.fs-kanban small,.fs-two small{display:block;font-size:10px;color:var(--gray);padding-bottom:6px;border-bottom:1px solid var(--line)}
.fs-card{display:block;border:1px solid var(--line);border-radius:3px;padding:8px;font-size:11px;background:#fff;margin-top:6px;color:var(--ink)}
.fs-card em{display:block;font-size:9px;color:var(--gray);margin-top:3px}
.fs-card.hot{border-left:2px solid var(--orange)}
.fs-card.done{background:var(--wash);color:var(--gray)}
.fs-filters{display:flex;flex-wrap:wrap;gap:5px}
.fs-chip{font-size:10px;border:1px solid var(--line);border-radius:20px;padding:3px 9px;color:var(--green)}
.fs-chip.on{background:var(--green);border-color:var(--green);color:#fff}
.fs-bars{display:flex;align-items:end;gap:7px;height:118px;margin:14px 0 4px;border-bottom:1px solid var(--line)}
.fs-bars i{flex:1;height:var(--h);background:var(--green);border-radius:2px 2px 0 0;opacity:.85}
.fs-bars i:nth-child(odd){opacity:.4}
.fs-bars i:last-child{background:var(--orange);opacity:1}
.fs-steps{display:flex;gap:4px;margin:2px 0 12px}
.fs-steps span{flex:1;height:4px;border-radius:2px;background:var(--line)}
.fs-steps span.done{background:var(--green)}
.fs-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fs-branches{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;padding:16px 18px 0}
.fs-branches span{position:relative;text-align:center;font-size:10px;color:var(--gray);padding-bottom:22px;transition:color .25s}
.fs-branches span:after{content:'';position:absolute;left:50%;bottom:0;width:1px;height:17px;background:var(--line)}
.fs-branches span.on{color:var(--green);font-weight:600}
.fs-branches span.on:after{width:2px;background:var(--orange)}
.fs-foundation{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:0 18px 18px;border:1px solid var(--green);border-radius:4px;padding:13px 16px;color:var(--green)}
.fs-foundation strong{display:block;font-size:14px;font-weight:600}
.fs-foundation small{display:block;font-size:11px;color:var(--gray);margin-top:3px}
.fs-foundation .ico{color:var(--orange)}

/* 02 Architecture */
.fs-arch{border:1px solid var(--line);border-radius:5px;background:#fff;overflow:hidden;box-shadow:0 18px 44px #1d54420a}
.fs-arch-top{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;padding:14px 20px;border-bottom:1px solid var(--line)}
.fs-scenarios{display:flex;gap:6px;flex-wrap:wrap}
.fs-scenarios button{border:1px solid var(--line);background:#fff;border-radius:3px;padding:8px 13px;font-size:13px;color:var(--green);min-height:40px;transition:background .2s,color .2s}
.fs-scenarios button:hover{border-color:var(--green)}
.fs-scenarios button[aria-pressed=true]{background:var(--green);border-color:var(--green);color:#fff}
.fs-lanes{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:24px;padding:24px 22px 20px;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:32px 32px;background-color:#fff;background-blend-mode:normal}
.fs-lanes{background-image:none}
.fs-lane>small{display:block;font:600 9px/1.5 Montserrat,sans-serif;letter-spacing:.08em;color:var(--gray);margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.fs-node{position:relative;border:1px solid var(--line);border-radius:4px;background:#fff;padding:10px 11px;margin-bottom:9px;font-size:13px;font-weight:550;color:var(--ink);transition:opacity .3s,border-color .3s,box-shadow .3s}
.fs-node small{display:block;font-size:10px;font-weight:400;color:var(--gray);margin-top:2px}
.fs-arch .fs-node{opacity:.4}
.fs-arch .fs-node.is-lit{opacity:1;border-color:var(--green);box-shadow:0 8px 18px #1d544214;color:var(--green)}
.fs-node.is-lit:before{content:attr(data-step);position:absolute;right:-7px;top:-8px;min-width:17px;height:17px;border-radius:50%;background:var(--orange);color:#fff;font:600 9px/17px Montserrat,sans-serif;text-align:center}
.fs-track{position:relative;height:2px;margin:0 22px;background:var(--line);overflow:hidden}
.fs-track i{position:absolute;top:0;left:-25%;width:22%;height:2px;background:linear-gradient(90deg,transparent,var(--orange));animation:fs-sweep 2.6s linear infinite}
.fs-readout{display:grid;grid-template-columns:190px 1fr;gap:28px;align-items:start;padding:18px 22px;background:var(--wash)}
.fs-readout>strong{font-size:17px;font-weight:600;color:var(--green)}
.fs-readout ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 24px;counter-reset:s}
.fs-readout li{font-size:13px;line-height:1.5;color:var(--ink);counter-increment:s;display:flex;gap:9px;animation:sf-appear .3s ease}
.fs-readout li:before{content:counter(s);flex:none;width:17px;height:17px;border-radius:50%;background:var(--orange);color:#fff;font:600 9px/17px Montserrat,sans-serif;text-align:center;margin-top:1px}
.fs-tech{margin-top:32px}
.fs-page .fs-tech h3{font-size:18px;letter-spacing:-.01em}
.fs-tech .tech-item{gap:12px}
.fs-tech .tech-item>.ico:first-child{width:8px;height:8px;color:var(--orange)}
.fs-mern{display:grid;grid-template-columns:1fr 1.15fr;gap:60px;margin-top:48px;align-items:start}
.fs-page .fs-mern h3{font-size:27px;color:var(--green);margin:12px 0 22px}
.fs-mern-chain{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--green);border-radius:4px;overflow:hidden;background:#fff;margin-bottom:20px}
.fs-mern-chain span{position:relative;padding:14px 8px;text-align:center;font-size:13px;color:var(--green);border-right:1px solid var(--line)}
.fs-mern-chain span:last-child{border:0}
.fs-mern-chain span:not(:last-child):after{content:'→';position:absolute;right:-8px;top:50%;transform:translateY(-50%);background:#fff;color:var(--orange);font-size:13px;line-height:1;z-index:1}
.fs-mern-chain b{display:block;font-size:30px;font-weight:600;letter-spacing:-.04em;line-height:1.1}
.fs-page .fs-mern p{font-size:15px}
.fs-decisions dl{margin-top:14px!important;border:1px solid var(--line);border-radius:4px;background:#fff}
.fs-decisions dl>div{display:grid;grid-template-columns:1.1fr 1fr;gap:18px;padding:13px 18px;border-top:1px solid var(--line)}
.fs-decisions dl>div:first-child{border-top:0}
.fs-page .fs-decisions dt{font-size:14px;font-weight:400;color:var(--ink);margin:0}
.fs-page .fs-decisions dd{font-size:14px;color:var(--green);font-weight:600}

/* 03 SaaS core */
.fs-core{display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:44px;align-items:center}
.fs-modules{display:grid;gap:10px}
.fs-module{position:relative;border-top:1px solid var(--line);padding:16px 0 6px}
.fs-page .fs-module h3{display:flex;align-items:center;gap:11px;font-size:19px;font-weight:550;color:var(--green);transition:color .3s}
.fs-module h3 .ico{width:21px;height:21px;transition:color .3s}
.fs-page .fs-module p{font-size:14px;line-height:1.6;margin-top:8px}
.fs-module:after{content:'';position:absolute;top:29px;width:28px;height:1px;background:var(--line);transition:background .3s}
.fs-left .fs-module:after{right:-40px}
.fs-right .fs-module:after{left:-40px}
.fs-module.is-hot h3 .ico{color:var(--orange)}
.fs-module.is-hot:after{background:var(--orange)}
.fs-engine{border:1px solid var(--green);border-radius:6px;background:#fff;box-shadow:0 22px 55px #1d544218;overflow:hidden;min-width:0}
.fs-engine-body{padding:18px 20px 20px}
.fs-label{display:block;font-size:11px;color:var(--gray);margin-bottom:6px}
.fs-seg{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:4px;overflow:hidden;margin-bottom:14px}
.fs-seg.fs-plans{grid-template-columns:repeat(3,1fr)}
.fs-seg button{border:0;border-right:1px solid var(--line);background:#fff;padding:8px 4px;font-size:13px;color:var(--green);min-height:40px;transition:background .2s,color .2s}
.fs-seg button:last-child{border-right:0}
.fs-seg button:hover{background:var(--wash)}
.fs-seg button[aria-pressed=true]{background:var(--green);color:#fff}
.fs-perms{list-style:none;margin:0 0 16px;padding:0}
.fs-perms li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;border-top:1px solid var(--line);font-size:13px;transition:opacity .3s}
.fs-perms b{font-weight:500}
.fs-perms span{font-size:11px;color:var(--green);white-space:nowrap}
.fs-perms li.locked{opacity:.5}
.fs-perms li.locked span{color:var(--gray)}
.fs-perms li.flip{animation:sf-appear .35s ease}
.fs-usage{margin:2px 0 14px}
.fs-log{background:var(--green);color:#ffffffe6;border-radius:4px;padding:11px 13px;font:10.5px/1.7 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;min-height:74px}
.fs-log span{display:block;animation:sf-appear .3s ease}
.fs-log b{color:#ffb08f;font-weight:400}

/* 04 AI + automation (dark) */
.fs-ai{background:var(--green);color:#fff}
.fs-page .fs-ai .sf-eyebrow{color:#fff}
.fs-page .fs-ai h2 em{color:#fff;opacity:.65}
.fs-page .fs-ai p{color:#ffffffc7}
.fs-ai .text-link{color:#fff!important;margin-top:22px}
.fs-ai-grid{display:grid;grid-template-columns:1fr 1.08fr;gap:70px;align-items:center}
.fs-ai-grid>div>p{margin-top:22px;max-width:520px}
.fs-ai-caps{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:28px!important}
.fs-page .fs-ai dt{color:#fff}
.fs-page .fs-ai dd{color:#ffffffbf;font-size:14px}
.fs-assist{background:#fff;color:var(--ink);border-radius:5px;overflow:hidden;box-shadow:0 24px 60px #0003;min-width:0}
.fs-assist-body{display:grid;grid-template-columns:1fr 178px}
.fs-chat{padding:22px;min-height:320px;display:flex;flex-direction:column;align-items:start;gap:14px}
.fs-page .fs-msg{font-size:14px;line-height:1.6;color:var(--ink);padding:13px 15px;border-radius:0 8px 8px 8px;background:var(--wash);border:1px solid var(--line);max-width:94%}
.fs-page .fs-ai .fs-msg{color:var(--ink)}.fs-page .fs-ai .fs-chat-note{color:var(--gray)}
.fs-msg cite{display:block;font-style:normal;font-size:10px;color:var(--gray);margin-top:8px}
.fs-msg:not([hidden]){animation:sf-appear .3s ease}
.fs-chat .sf-chat-question{align-self:end;margin:0;max-width:94%;text-align:left;font-size:13px;padding:12px 15px}
.fs-page .fs-chat-note{font-size:10px;color:var(--gray);margin-top:auto}
.fs-ai-steps{list-style:none;margin:0;padding:16px 14px;border-left:1px solid var(--line);background:var(--wash);counter-reset:a}
.fs-ai-steps li{position:relative;padding:10px 0 10px 24px;font-size:11px;line-height:1.45;color:var(--gray);border-bottom:1px solid var(--line);counter-increment:a;transition:color .25s}
.fs-ai-steps li:before{content:counter(a);position:absolute;left:0;top:10px;width:16px;height:16px;border-radius:50%;border:1px solid var(--line);font:600 8px/15px Montserrat,sans-serif;text-align:center;background:#fff}
.fs-ai-steps li.is-active{color:var(--green);font-weight:600}
.fs-ai-steps li.is-active:before{background:var(--orange);border-color:var(--orange);color:#fff}
.fs-ai-steps li.is-done{color:var(--green)}
.fs-ai-steps li.is-done:before{background:var(--green);border-color:var(--green);color:#fff}
.fs-auto{margin-top:64px;border:1px solid #ffffff35;border-radius:6px;padding:24px 26px;background:linear-gradient(160deg,#ffffff0a,transparent)}
.fs-auto-top{display:flex;justify-content:space-between;align-items:center;gap:20px}
.fs-page .fs-ai .sf-mini-label{color:#ffffffb3}
.fs-pipe{list-style:none;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px;padding:0;margin:26px 0 20px}
.fs-pipe li{position:relative;border:1px solid #ffffff33;border-radius:4px;padding:15px 13px;background:#ffffff06;transition:border-color .3s,background .3s,transform .3s,opacity .3s}
.fs-pipe li:not(:last-child):after{content:'';position:absolute;right:-17px;top:50%;width:16px;height:1px;background:#ffffff55}
.fs-pipe .ico{display:block;width:22px;height:22px;color:var(--orange);margin-bottom:12px}
.fs-pipe small{font:8px/1.5 Montserrat,sans-serif;letter-spacing:.08em;color:#ffffffa6;text-transform:uppercase}
.fs-pipe strong{display:block;font-size:16px;font-weight:550;margin:4px 0 3px}
.fs-pipe span{font-size:12px;color:#ffffffc2}
.fs-pipe.is-running li{opacity:.4}
.fs-pipe li.is-active{opacity:1!important;border-color:var(--orange);background:#ffffff14;transform:translateY(-4px)}
.fs-pipe li.is-done{opacity:1!important;border-color:#ffffff80}
.fs-console{background:#143f31;border:1px solid #ffffff22;border-radius:4px;padding:13px 16px;font:11px/1.85 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:#ffffffdb;min-height:128px}
.fs-console span{display:block;animation:sf-appear .25s ease}
.fs-console time{color:#ffffff75;margin-right:12px}
.fs-console b{color:#ffb08f;font-weight:400}
.fs-integrations{display:grid;grid-template-columns:repeat(4,1fr);gap:0 30px;margin-top:40px}
.fs-integrations dl{border-top:1px solid #ffffff30;padding:16px 0}
.fs-page .fs-integrations dt{display:flex;align-items:center;gap:9px;font-size:15px;font-weight:550;margin-bottom:5px}
.fs-integrations dt .ico{width:18px;height:18px;color:var(--orange)}
.fs-page .fs-integrations dd{font-size:13px}

/* 05 Engineering */
.fs-eng-grid{display:grid;grid-template-columns:1fr 1.02fr;gap:60px;align-items:start}
.fs-pillars{display:grid;grid-template-columns:1fr 1fr;gap:30px 34px}
.fs-pillars>div{border-top:2px solid var(--green);padding-top:17px}
.fs-page .fs-pillars h3{display:flex;align-items:center;gap:10px;font-size:20px;color:var(--green)}
.fs-pillars h3 .ico{width:21px;height:21px;color:var(--orange)}
.fs-page .fs-pillars p{font-size:14px;margin-top:10px}
.fs-span{grid-column:1/-1}
.fs-release{border:1px solid var(--line);border-radius:5px;background:#fff;box-shadow:0 18px 44px #1d54420a;overflow:hidden}
.fs-stages{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:0;padding:22px 20px 18px}
.fs-stages li{position:relative;border-top:2px solid var(--line);padding-top:12px}
.fs-stages li:before{content:'';position:absolute;left:0;top:-5px;width:8px;height:8px;border-radius:50%;background:#fff;border:1px solid var(--green)}
.fs-stages li.done{border-top-color:var(--green)}
.fs-stages li.done:before{background:var(--green)}
.fs-stages li.live{border-top-color:var(--orange)}
.fs-stages li.live:before{background:var(--orange);border-color:var(--orange);box-shadow:0 0 0 4px #ef602426;animation:fs-pulse 2s ease-in-out infinite}
.fs-stages b{display:block;font-size:14px;font-weight:600;color:var(--green)}
.fs-stages small{font-size:11px;color:var(--gray)}
.fs-checks{list-style:none;margin:0;padding:0 20px}
.fs-checks li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--line);font-size:13px}
.fs-checks b{font-weight:500;font-size:12px;color:var(--green)}
.fs-checks b:before{content:'✓ ';color:var(--orange)}
.fs-monitor{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);margin-top:10px;background:var(--wash)}
.fs-monitor>div{padding:14px 16px;border-right:1px solid var(--line)}
.fs-monitor>div:last-child{border:0}
.fs-monitor small{display:block;font-size:10px;color:var(--gray);margin-bottom:6px}
.fs-monitor svg{display:block;width:100%;height:30px}
.fs-monitor b{font-size:12px;font-weight:600;color:var(--green)}

/* Work */
.fs-cases{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:30px}
.fs-case{display:grid;grid-template-rows:subgrid;grid-row:span 11;row-gap:0;min-width:0}
.fs-case-visual{display:flex;flex-direction:column;height:320px;border:1px solid var(--line);border-radius:4px;background:#fff;overflow:hidden;margin-bottom:22px}
.fs-case-visual>img{width:100%;height:100%;object-fit:cover;object-position:top}
.fs-diagram{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:18px 14px;background-image:linear-gradient(rgba(29,84,66,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(29,84,66,.06) 1px,transparent 1px);background-size:26px 26px;background-color:#fff}
.fs-diagram span{border:1px solid var(--line);background:#fff;padding:6px 11px;border-radius:3px;font-size:11px;line-height:1.35;color:var(--green);text-align:center}
.fs-diagram strong{background:var(--green);color:#fff;padding:9px 16px;border-radius:3px;font-size:14px;font-weight:550;box-shadow:0 8px 18px #1d544226}
.fs-diagram b{color:var(--orange);font-weight:400;font-size:11px;line-height:1}
.fs-diagram .fork{display:flex;flex-wrap:wrap;justify-content:center;gap:5px}
.fs-page .fs-case>h3{font-size:22px;margin:12px 0 18px}
.fs-case>dl{display:grid;grid-template-rows:subgrid;grid-row:span 7}
.fs-case dl>div{display:grid;grid-template-columns:104px 1fr;gap:14px;border-top:1px solid var(--line);padding:11px 0}
.fs-page .fs-case dt{font-size:12px;font-weight:600;margin:0}
.fs-page .fs-case dd{font-size:13px;line-height:1.55}
.fs-case>small{font-size:11px;color:var(--gray);padding-top:10px;border-top:1px solid var(--line)}
.fs-more{display:flex;align-items:center;flex-wrap:wrap;gap:12px 30px;margin-top:36px;padding-top:18px;border-top:1px solid var(--line)}
.fs-more>span{font:600 10px/1.6 Montserrat,sans-serif;letter-spacing:.08em;color:var(--gray);text-transform:uppercase}
.fs-more .text-link{font-size:15px}

/* Process lifecycle */
.fs-cycle ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:18px;position:relative}
.fs-cycle ol:before{content:'';position:absolute;left:16px;right:16px;top:16px;height:1px;background:var(--green)}
.fs-cycle li{position:relative;padding-top:46px;display:flex;flex-direction:column}
.fs-page .fs-cycle li p{flex:1}
.fs-cycle li>b{position:absolute;top:0;left:0;width:33px;height:33px;border-radius:50%;background:#fff;border:1px solid var(--green);display:grid;place-items:center;font:600 10px Montserrat,sans-serif;color:var(--green)}
.fs-cycle li:nth-child(7)>b{background:var(--green);color:#fff}
.fs-cycle li:nth-child(8)>b{background:var(--orange);border-color:var(--orange);color:#fff}
.fs-page .fs-cycle h3{font-size:20px;color:var(--green)}
.fs-page .fs-cycle p{font-size:13px;line-height:1.55;margin:8px 0 12px}
.fs-cycle small{display:block;font-size:11px;font-weight:600;color:var(--green);padding-top:9px;border-top:1px dashed rgba(29,84,66,.35)}
.fs-loop{position:relative;height:30px;margin:26px 16px 0;border:1px solid var(--orange);border-top:0;border-radius:0 0 14px 14px}
.fs-loop:before{content:'';position:absolute;left:-5px;top:-7px;border:5px solid transparent;border-bottom:7px solid var(--orange);border-top:0}
.fs-loop span{position:absolute;left:50%;bottom:-9px;transform:translateX(-50%);background:#fff;padding:0 14px;font-size:12px;color:var(--orange);white-space:nowrap}
.fs-considers{display:flex;align-items:center;gap:26px;margin-top:44px;padding-top:22px;border-top:1px solid var(--line)}
.fs-considers .sf-mini-label{flex:none;max-width:180px}
.fs-considers .fs-tags{margin:0}


/* FAQ: starting-point guide + filtered questions */
.fs-faq{background:var(--wash);border-block:1px solid var(--line)}
.fs-faq-layout{display:grid;grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);gap:55px;align-items:start}.fs-faq-layout>*{min-width:0}
.fs-starter{position:sticky;top:170px;border:1px solid var(--line);border-radius:5px;background:#fff;box-shadow:0 18px 44px #1d54420a;overflow:hidden}
.fs-starter-body{padding:20px}
.fs-start-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.fs-start-options button{display:flex;align-items:center;gap:9px;text-align:left;border:1px solid var(--line);background:#fff;border-radius:4px;padding:11px 12px;font-size:13px;line-height:1.3;color:var(--green);min-height:48px;transition:border-color .2s,background .2s}
.fs-start-options button .ico{width:18px;height:18px;flex:none}
.fs-start-options button:hover{border-color:var(--green)}
.fs-start-options button[aria-pressed=true]{background:var(--green);border-color:var(--green);color:#fff}
.fs-start-options button[aria-pressed=true] .ico{color:var(--orange)}
.fs-start-result{margin-top:16px;border-left:2px solid var(--orange);background:var(--wash);padding:15px 16px}
.fs-start-result small{font-size:10px;color:var(--gray)}
.fs-start-result strong{display:block;font-size:20px;font-weight:600;letter-spacing:-.02em;color:var(--green);margin:3px 0 6px;animation:sf-appear .3s ease}
.fs-page .fs-start-result p{font-size:13px;line-height:1.6}
.fs-start-path{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:11px;color:var(--gray)}
.fs-start-path span{border:1px solid var(--line);background:#fff;border-radius:3px;padding:4px 8px}
.fs-start-path span.on{border-color:var(--green);color:var(--green);font-weight:600}
.fs-start-path b{color:var(--orange);font-weight:400}
.fs-start-ask{margin:18px 0 20px}
.fs-start-ask ol{list-style:none;margin:10px 0 0;padding:0;counter-reset:q}
.fs-start-ask li{counter-increment:q;display:flex;gap:10px;align-items:center;font-size:13px;padding:7px 0;border-top:1px solid var(--line)}
.fs-start-ask li:before{content:counter(q);width:18px;height:18px;flex:none;border-radius:50%;border:1px solid var(--green);color:var(--green);font:600 9px/16px Montserrat,sans-serif;text-align:center}
.fs-starter .button{width:100%;justify-content:space-between}
.fs-faq-filters{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:18px}
.fs-faq-filters button{border:1px solid var(--line);background:#fff;border-radius:20px;padding:7px 13px;font-size:13px;color:var(--green);min-height:38px;transition:background .2s,color .2s}
.fs-faq-filters button small{font-size:10px;color:var(--gray);margin-left:4px}
.fs-faq-filters button:hover{border-color:var(--green)}
.fs-faq-filters button[aria-pressed=true]{background:var(--green);border-color:var(--green);color:#fff}
.fs-faq-filters button[aria-pressed=true] small{color:#ffffffb3}
.fs-faq-list{border:1px solid var(--line);border-radius:5px;background:#fff;overflow:hidden}
.fs-faq-list details{border-top:1px solid var(--line);transition:background .2s}
.fs-faq-list details.first-visible{border-top:0}
.fs-faq-list details[hidden]{display:none}
.fs-faq-list details[open]{background:rgba(29,84,66,.025)}
.fs-faq-list summary{display:grid;grid-template-columns:120px 1fr 30px;align-items:center;gap:18px;padding:18px 22px;cursor:pointer;list-style:none}
.fs-faq-list summary::-webkit-details-marker{display:none}
.fs-faq-list summary:focus-visible{outline:2px solid var(--orange);outline-offset:-3px}
.fs-q-meta{font-size:11px;color:var(--gray);line-height:1.35}
.fs-q-meta b{display:block;font:600 10px Montserrat,sans-serif;color:var(--orange);margin-bottom:2px}
.fs-q{font-size:17px;font-weight:550;line-height:1.35;color:var(--green)}
.fs-faq-list summary i{position:relative;width:30px;height:30px;border:1px solid var(--line);border-radius:50%;transition:background .2s,border-color .2s,transform .25s}
.fs-faq-list summary i:before,.fs-faq-list summary i:after{content:'';position:absolute;left:50%;top:50%;width:11px;height:1.5px;background:var(--green);transform:translate(-50%,-50%)}
.fs-faq-list summary i:after{transform:translate(-50%,-50%) rotate(90deg);transition:transform .25s}
.fs-faq-list summary:hover i{border-color:var(--green)}
.fs-faq-list details[open] summary i{background:var(--green);border-color:var(--green)}
.fs-faq-list details[open] summary i:before,.fs-faq-list details[open] summary i:after{background:#fff}
.fs-faq-list details[open] summary i:after{transform:translate(-50%,-50%) rotate(0)}
.fs-a{margin:0 22px 20px calc(120px + 40px);padding-left:16px;border-left:2px solid var(--orange);animation:sf-appear .3s ease}
.fs-page .fs-a p{font-size:15px;line-height:1.65}
.fs-a a{display:inline-block;margin-top:8px;font-size:13px}
.fs-a a:after{content:' ↗';color:var(--orange)}
.fs-page .fs-faq-empty{font-size:14px;margin-top:18px}
@media(max-width:1100px){.fs-faq-layout{gap:32px}.fs-faq-list summary{grid-template-columns:96px 1fr 30px;gap:14px}.fs-a{margin-left:132px}}
@media(max-width:850px){.fs-faq-layout{grid-template-columns:minmax(0,1fr)}.fs-starter{position:relative;top:0}}
@media(max-width:650px){.fs-start-options{grid-template-columns:1fr}.fs-faq-filters{flex-wrap:nowrap;overflow-x:auto;margin-inline:-20px;padding:0 20px 4px}.fs-faq-filters button{white-space:nowrap}
.fs-faq-list summary{grid-template-columns:1fr 30px;gap:6px 12px;padding:16px}.fs-q-meta{grid-column:1/-1;display:flex;gap:8px}.fs-q-meta b{margin:0}.fs-a{margin:0 16px 18px}.fs-q{font-size:16px}}

@keyframes fs-sweep{from{left:-25%}to{left:105%}}
@keyframes fs-pulse{50%{box-shadow:0 0 0 7px #ef602410}}

@media(max-width:1100px){
.fs-hero-grid{grid-template-columns:1fr 1.1fr}
.fs-system-body{grid-template-columns:1fr 1fr}
.fs-app{grid-template-columns:1fr}.fs-app aside{display:none}
.fs-build-layout,.fs-eng-grid{gap:34px}
.fs-type button span{font-size:20px}
.fs-lanes{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:14px}
.fs-core{grid-template-columns:1fr 1fr;gap:30px}
.fs-engine{grid-column:1/-1;grid-row:1;max-width:620px;justify-self:center;width:100%}
.fs-module:after{display:none}
.fs-ai-grid{gap:40px}
.fs-assist-body{grid-template-columns:1fr 150px}
.fs-pipe{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.fs-pipe li:nth-child(3):after{display:none}
.fs-integrations{grid-template-columns:repeat(2,1fr)}
.fs-cases{column-gap:20px}
.fs-case dl>div{grid-template-columns:1fr;gap:3px}
.fs-cycle ol{grid-template-columns:repeat(4,minmax(0,1fr));row-gap:34px}
.fs-cycle ol:before{display:none}
.fs-cycle li{border-top:1px solid var(--green);padding-top:30px}
.fs-cycle li>b{top:-17px}
.fs-loop{display:none}
}
@media(max-width:850px){
.fs-hero-grid{grid-template-columns:1fr}
.fs-system{max-width:680px;width:100%;justify-self:center}
.fs-build-layout{grid-template-columns:1fr}
.fs-type-stage{position:relative;top:0;grid-row:1}
.fs-mern{grid-template-columns:1fr;gap:34px}
.fs-ai-grid{grid-template-columns:1fr}
.fs-eng-grid{grid-template-columns:1fr}
.fs-cases{grid-template-columns:1fr;row-gap:50px}
.fs-case{grid-row:auto;display:block}
.fs-case>dl{display:block}
.fs-case dl>div{grid-template-columns:130px 1fr;gap:14px}
.fs-case-visual{height:auto;min-height:280px}
.fs-considers{display:block}.fs-considers .fs-tags{margin-top:14px}
.fs-readout{grid-template-columns:1fr;gap:12px}.fs-readout ol{grid-template-columns:1fr 1fr}
}
@media(max-width:650px){
.fs-system-body{grid-template-columns:1fr;min-height:0}
.fs-app{border-right:0;border-bottom:1px solid var(--line)}
.fs-events,.fs-chart{display:none}
.fs-kpis{margin-bottom:0}
.fs-kpis b{font-size:16px}
.fs-system-foot>span:last-child{display:none}
.fs-page .fs-type p,.fs-type .fs-tags{margin-left:0}
.fs-preview{padding:14px;min-height:0}
.fs-kanban{grid-template-columns:1fr 1fr}
.fs-two{grid-template-columns:1fr}
.fs-branches span{font-size:8px}
.fs-lanes{grid-template-columns:1fr 1fr;gap:14px;padding:18px 16px}
.fs-arch-top{padding:14px 16px}
.fs-scenarios button{font-size:12px;padding:7px 10px}
.fs-readout{padding:16px}.fs-readout ol{grid-template-columns:1fr}
.fs-mern-chain span{font-size:11px}
.fs-decisions dl>div{grid-template-columns:1fr;gap:3px;padding:12px 14px}
.fs-core{grid-template-columns:1fr}
.fs-engine-body{padding:16px}
.fs-seg button{font-size:12px}
.fs-ai-caps{grid-template-columns:1fr;gap:16px}
.fs-assist-body{grid-template-columns:1fr}
.fs-ai-steps{border-left:0;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;column-gap:14px}
.fs-auto{padding:20px 16px}
.fs-auto-top{flex-direction:column;align-items:start}
.fs-pipe{grid-template-columns:1fr 1fr;gap:12px}
.fs-pipe li:after{display:none}
.fs-console{font-size:10px}
.fs-integrations{grid-template-columns:1fr}
.fs-pillars{grid-template-columns:1fr}
.fs-stages{grid-template-columns:1fr 1fr;row-gap:18px}
.fs-monitor{grid-template-columns:1fr}
.fs-monitor>div{border-right:0;border-bottom:1px solid var(--line)}
.fs-case dl>div{grid-template-columns:1fr;gap:3px}
.fs-cycle ol{grid-template-columns:1fr;row-gap:0}
.fs-cycle li{border-top:0;border-left:1px solid var(--green);padding:0 0 26px 30px;margin-left:16px}
.fs-cycle li>b{top:-2px;left:-17px}
}
@media(prefers-reduced-motion:reduce){
.fs-page *,.fs-page *:before,.fs-page *:after{animation:none!important;transition:none!important}
}

/* ===== Other CMS page. Builds on the shared sf- and fs- components. ===== */
.cm-page .fs-hero h1{max-width:560px}
/* Hero: platform fit */
.cm-fit{border:1px solid var(--line);border-radius:5px;background:#fff;box-shadow:0 20px 50px #1d54420c;overflow:hidden;min-width:0}
.cm-fit-body{display:grid;grid-template-columns:190px minmax(0,1fr);min-height:400px}
.cm-reqs{display:flex;flex-direction:column;gap:6px;padding:16px 12px;border-right:1px solid var(--line);background:var(--sf-paper)}
.cm-reqs>small{font-size:10px;color:var(--gray);margin:0 0 4px 4px}
.cm-reqs button{display:flex;align-items:center;gap:9px;text-align:left;border:1px solid transparent;background:transparent;border-radius:4px;padding:9px 10px;font-size:12px;line-height:1.3;color:var(--gray);min-height:44px;transition:background .25s,border-color .25s,color .25s}
.cm-reqs button .ico{width:17px;height:17px;flex:none;color:var(--green)}
.cm-reqs button:hover{color:var(--green)}
.cm-reqs button[aria-pressed=true]{background:#fff;border-color:var(--line);color:var(--green);font-weight:600;box-shadow:inset 2px 0 0 var(--orange),0 6px 14px #1d54420d}
.cm-editor{display:flex;flex-direction:column;min-width:0}
.cm-ed-top{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 14px;border-bottom:1px solid var(--line)}
.cm-ed-name{display:flex;align-items:center;gap:8px;color:var(--green)}
.cm-ed-name i{width:12px;height:12px;border-radius:3px;background:var(--green);box-shadow:inset -4px -4px 0 var(--orange)}
.cm-ed-name b{font-size:15px;font-weight:600;animation:sf-appear .35s ease}
.cm-ed-name small{font-size:9px;color:var(--orange);border:1px solid #ef602455;border-radius:20px;padding:1px 7px}
.cm-bps{display:flex;gap:3px;border:1px solid var(--line);border-radius:4px;padding:2px}
.cm-bps span{font-size:9px;padding:3px 7px;border-radius:3px;color:var(--gray);transition:background .25s,color .25s}
.cm-bps span.on{background:var(--green);color:#fff}
.cm-ed-body{flex:1;display:grid;grid-template-columns:104px minmax(0,1fr);min-height:0}
.cm-ed-layers{list-style:none;margin:0;padding:12px 8px;border-right:1px solid var(--line);font-size:10px;color:var(--gray)}
.cm-ed-layers li{padding:6px 7px;border-radius:3px;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;animation:sf-appear .3s ease both}
.cm-ed-layers li:before{content:'';display:inline-block;width:6px;height:6px;border:1px solid var(--green);border-radius:1px;margin-right:6px;vertical-align:1px}
.cm-ed-layers li.on{background:var(--wash);color:var(--green);font-weight:600}
.cm-canvas{position:relative;display:flex;justify-content:center;align-items:center;padding:16px;background-color:var(--wash);background-image:radial-gradient(rgba(29,84,66,.14) 1px,transparent 1px);background-size:14px 14px;overflow:hidden}
.cm-site{width:100%;background:#fff;border:1px solid var(--line);border-radius:4px;padding:12px;box-shadow:0 12px 28px #1d544214;transition:width .7s cubic-bezier(.4,0,.2,1)}
.cm-site[data-bp=t]{width:72%}
.cm-site[data-bp=m]{width:44%}
.cm-site-nav{display:flex;align-items:center;gap:6px;padding-bottom:9px;border-bottom:1px solid var(--line)}
.cm-site-nav b{font-size:11px;color:var(--green);margin-right:auto}
.cm-site-nav span{width:22px;height:4px;border-radius:2px;background:var(--line)}
.cm-site-nav em{width:30px;height:12px;border-radius:2px;background:var(--orange)}
.cm-site-hero{padding:16px 0 12px}
.cm-site-hero strong{display:block;font-size:22px;line-height:1.1;letter-spacing:-.03em;color:var(--ink);margin-bottom:9px;border-radius:2px;transition:background .4s}
.cm-site-hero strong.edit{background:#ef602420;box-shadow:0 0 0 2px #ef602440}
.cm-site-hero span{display:block;height:5px;border-radius:3px;background:var(--line);margin-bottom:5px;width:80%}
.cm-site-hero span.short{width:55%}
.cm-site-hero em{display:inline-block;width:64px;height:16px;border-radius:2px;background:var(--green);margin-top:6px}
.cm-site-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.cm-site-grid i{height:44px;border-radius:3px;background:var(--wash);border:1px solid var(--line)}
.cm-site-form{display:grid;grid-template-columns:1fr 1fr auto;gap:6px;margin-top:10px}
.cm-site-form span{height:14px;border:1px solid var(--line);border-radius:2px}
.cm-site-form b{width:40px;height:14px;border-radius:2px;background:var(--orange)}
.cm-site[data-bp=m] .cm-site-nav span{display:none}
.cm-site[data-bp=m] .cm-site-hero strong{font-size:15px}
.cm-site[data-bp=m] .cm-site-grid,.cm-site[data-bp=m] .cm-site-form{grid-template-columns:1fr}
.cm-site[data-bp=m] .cm-site-grid i{height:22px}
.cm-site[data-bp=t] .cm-site-grid{grid-template-columns:1fr 1fr}
.cm-fit-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;border-top:1px solid var(--line);background:var(--wash);padding:11px 15px}
.cm-fit-foot ol{list-style:none;display:flex;gap:4px;margin:0;padding:0}
.cm-fit-foot li{font-size:10px;color:var(--gray);padding:3px 8px;border:1px solid var(--line);border-radius:3px;background:#fff;transition:all .3s}
.cm-fit-foot li.on{border-color:var(--green);color:#fff;background:var(--green)}
.cm-fit-foot li.done{color:var(--green);border-color:var(--green)}
.cm-fit-foot>span{font-size:11px;color:var(--green);text-align:right}

/* 01 Platforms */
.cm-plat-copy .sf-mini-label{display:block;margin-bottom:10px}
.cm-page .cm-plat-copy h3{font-size:30px;color:var(--green)}
.cm-page .cm-plat-copy p{font-size:16px;margin:14px 0 4px;max-width:520px}
.cm-framer{display:grid;grid-template-columns:.9fr 1.1fr;gap:55px;align-items:center;padding:34px;border:1px solid var(--line);border-radius:6px;background:linear-gradient(115deg,#fff 45%,var(--wash))}
.cm-page .cm-framer h3{font-size:38px}
.cm-motion{border:1px solid var(--line);border-radius:5px;background:#fff;overflow:hidden;box-shadow:0 18px 44px #1d544210;min-width:0}
.cm-motion-controls{display:flex;flex-wrap:wrap;gap:6px;padding:12px 14px;border-bottom:1px solid var(--line)}
.cm-motion-controls button,.cm-triggers button,.cm-prios button,.cm-layer-reqs button{border:1px solid var(--line);background:#fff;border-radius:3px;padding:7px 11px;font-size:12px;color:var(--green);min-height:36px;transition:background .2s,color .2s,border-color .2s}
.cm-motion-controls button:hover,.cm-triggers button:hover,.cm-prios button:hover,.cm-layer-reqs button:hover{border-color:var(--green)}
.cm-motion-controls button[aria-pressed=true],.cm-triggers button[aria-pressed=true],.cm-prios button[aria-pressed=true],.cm-layer-reqs button[aria-pressed=true]{background:var(--green);border-color:var(--green);color:#fff}
.cm-motion-stage{display:flex;justify-content:center;padding:22px;height:280px;background-color:var(--wash);background-image:radial-gradient(rgba(29,84,66,.14) 1px,transparent 1px);background-size:14px 14px;overflow:hidden}
.cm-mpage{width:100%;max-width:420px;background:#fff;border:1px solid var(--line);border-radius:5px;padding:16px;transition:width .6s cubic-bezier(.4,0,.2,1),max-width .6s cubic-bezier(.4,0,.2,1),transform .5s,opacity .5s}
.cm-m-hero b{display:block;font-size:20px;letter-spacing:-.03em;color:var(--ink);margin-bottom:8px}
.cm-m-hero span{display:block;height:5px;background:var(--line);border-radius:3px;width:78%;margin-bottom:5px}
.cm-m-hero span.short{width:50%}
.cm-m-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:16px 0 12px}
.cm-m-cards i{position:relative;height:74px;border-radius:4px;background:var(--wash);border:1px solid var(--line);transition:transform .35s cubic-bezier(.3,1.4,.5,1),box-shadow .35s,background .35s}
.cm-m-cards em{position:absolute;left:8px;right:8px;bottom:8px;height:5px;border-radius:3px;background:rgba(29,84,66,.25)}
.cm-m-cta{display:inline-block;font-size:11px;color:#fff;background:var(--green);padding:6px 12px;border-radius:3px}
[data-mode=reveal] .cm-m-cards i{animation:cm-rise 2.6s cubic-bezier(.2,.8,.2,1) infinite both}
[data-mode=reveal] .cm-m-cards i:nth-child(2){animation-delay:.12s}
[data-mode=reveal] .cm-m-cards i:nth-child(3){animation-delay:.24s}
[data-mode=hover] .cm-m-cards i:nth-child(2){animation:cm-hover 2.4s ease-in-out infinite}
[data-mode=breakpoint] .cm-mpage{animation:cm-bp 4.8s ease-in-out infinite}
[data-mode=breakpoint] .cm-m-cards{grid-template-columns:1fr 1fr 1fr}
[data-mode=transition] .cm-mpage{animation:cm-page 2.8s cubic-bezier(.6,0,.2,1) infinite}
.cm-motion-foot{display:flex;align-items:center;gap:12px;padding:11px 14px;border-top:1px solid var(--line);font-size:11px;color:var(--green)}
.cm-motion-foot svg{width:54px;height:18px;flex:none}
.cm-duo{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:28px}
.cm-plat{display:flex;flex-direction:column;gap:22px;padding:30px;border:1px solid var(--line);border-radius:6px;background:#fff}
.cm-dyn{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;margin-top:auto;padding:18px;border-radius:5px;background:var(--wash);border:1px solid var(--line)}
.cm-dyn small{display:block;font-size:9px;color:var(--gray);margin-bottom:7px}
.cm-dyn-table div{display:flex;justify-content:space-between;gap:6px;font-size:10px;padding:6px 7px;border:1px solid var(--line);border-radius:3px;background:#fff;margin-top:4px;transition:border-color .3s,box-shadow .3s}
.cm-dyn-table div span{color:var(--gray)}
.cm-dyn-table div.on{border-color:var(--orange);box-shadow:inset 2px 0 0 var(--orange)}
.cm-dyn-arrow{color:var(--orange);font-weight:400}
.cm-dyn-page{background:#fff;border:1px solid var(--green);border-radius:4px;padding:10px}
.cm-dyn-page i{display:block;width:28px;height:28px;border-radius:50%;background:var(--line);margin-bottom:7px}
.cm-dyn-page strong{display:block;font-size:13px;color:var(--green);animation:sf-appear .35s ease}
.cm-dyn-page>span{display:block;font-size:10px;color:var(--gray)}
.cm-dyn-page em{display:inline-block;font-style:normal;font-size:9px;background:var(--green);color:#fff;padding:3px 7px;border-radius:2px;margin-top:7px}
.cm-sq{display:grid;grid-template-columns:1.2fr 1fr;gap:12px;margin-top:auto;padding:18px;border-radius:5px;background:var(--wash);border:1px solid var(--line)}
.cm-sq-page{background:#fff;border:1px solid var(--line);border-radius:3px;padding:10px}
.cm-sq-page i{display:block;height:54px;background:linear-gradient(135deg,#d9e3dd,#eef2ef);border-radius:2px;margin-bottom:8px}
.cm-sq-page small{font-size:8px;color:var(--gray);letter-spacing:.08em}
.cm-sq-page strong{display:block;font:400 15px/1.2 Georgia,serif;color:var(--ink);margin:3px 0 7px;transition:letter-spacing .5s,max-width .5s,font-size .5s,color .5s}
.cm-sq-page span{display:block;height:4px;background:var(--line);border-radius:2px;margin-bottom:4px}
.cm-sq-page span.short{width:60%}
.cm-sq-code{background:var(--green);border-radius:3px;padding:10px;color:#ffffffe0}
.cm-sq-code small{display:block;font-size:9px;color:#ffffffa6;margin-bottom:6px}
.cm-sq-code code{font-size:10px;opacity:.55;transition:opacity .4s}
.cm-sq.is-on .cm-sq-code code{opacity:1}
.cm-sq.is-on .cm-sq-page strong{font:600 19px/1.1 var(--font);letter-spacing:-.02em;max-width:12ch;color:var(--green)}
.cm-sq-toggle{align-self:flex-start;border:1px solid var(--line);background:#fff;border-radius:3px;padding:8px 13px;font-size:13px;color:var(--green);min-height:40px;margin-top:-10px}
.cm-sq-toggle[aria-pressed=true]{background:var(--green);color:#fff;border-color:var(--green)}
.cm-others{margin-top:34px;padding-top:24px;border-top:1px solid var(--line)}
.cm-others dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 26px;margin:14px 0 0}
.cm-other{border-top:2px solid var(--green);padding-top:15px}
.cm-page .cm-other dt{display:flex;align-items:center;gap:9px;font-size:19px;font-weight:600;color:var(--green);margin-bottom:10px}
.cm-other dt .ico{width:19px;height:19px;color:var(--orange)}
.cm-page .cm-other dd{font-size:13px;line-height:1.55;margin-bottom:9px}
.cm-other dd b{display:block;font-size:10px;font-weight:600;color:var(--green);letter-spacing:.04em}
.cm-page .cm-others-note{font-size:14px;margin-top:20px}

/* 02 Customisation */
.cm-layers{display:grid;grid-template-columns:.75fr 1.25fr;gap:40px;align-items:start}
.cm-layer-reqs{display:grid;gap:8px}
.cm-layer-reqs button{text-align:left;font-size:15px;padding:14px 16px;min-height:52px;border-radius:4px}
.cm-stack{border:1px solid var(--line);border-radius:5px;background:#fff;padding:20px;box-shadow:0 18px 44px #1d54420a}
.cm-stack-top,.cm-stack-out{display:flex;align-items:center;gap:13px;border:1px solid var(--green);border-radius:4px;padding:13px 16px;color:var(--green)}
.cm-stack-top .ico,.cm-stack-out .ico{width:24px;height:24px;color:var(--orange);flex:none}
.cm-stack-top strong,.cm-stack-out strong{display:block;font-size:16px;font-weight:600}
.cm-stack-top small,.cm-stack-out small{display:block;font-size:12px;color:var(--gray);margin-top:2px}
.cm-stack-out{background:var(--green);color:#fff}
.cm-stack-out small{color:#ffffffc7;animation:sf-appear .35s ease}
.cm-stack-cols{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:22px 0}
.cm-stack-cols:before,.cm-stack-cols:after{content:'';position:absolute;left:50%;width:1px;height:22px;background:var(--orange)}
.cm-stack-cols:before{top:-22px}.cm-stack-cols:after{bottom:-22px}
.cm-stack-cols>div{border:1px solid var(--line);border-radius:4px;padding:12px;background:var(--wash)}
.cm-stack-cols small{display:block;font:600 9px/1.5 Montserrat,sans-serif;letter-spacing:.08em;color:var(--gray);margin-bottom:8px;text-transform:uppercase}
.cm-stack-cols span{display:block;font-size:12px;padding:7px 9px;border:1px solid var(--line);border-radius:3px;background:#fff;margin-top:5px;opacity:.45;transition:opacity .3s,border-color .3s,color .3s,box-shadow .3s}
.cm-stack-cols span.is-lit{opacity:1;border-color:var(--green);color:var(--green);font-weight:600;box-shadow:inset 2px 0 0 var(--orange)}
.cm-cap{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin-top:44px}
.cm-cap>div{border-top:1px solid var(--line);padding-top:16px}
.cm-page .cm-cap h3{display:flex;align-items:center;gap:10px;font-size:18px;color:var(--green)}
.cm-cap h3 .ico{width:19px;height:19px;color:var(--orange)}
.cm-page .cm-cap p{font-size:14px;margin-top:9px}

/* 03 Connected */
.cm-commerce{background:#fff;color:var(--ink);border-radius:5px;overflow:hidden;box-shadow:0 24px 60px #0003}
.cm-commerce-body{display:grid;grid-template-columns:1fr 1fr}
.cm-commerce-body>div{padding:22px}
.cm-commerce-body>div+div{border-left:1px solid var(--line);background:var(--wash)}
.cm-commerce strong{display:flex;align-items:center;gap:9px;font-size:15px;font-weight:600;color:var(--green);margin-bottom:12px;line-height:1.3}
.cm-commerce strong .ico{width:19px;height:19px;color:var(--orange);flex:none}
.cm-commerce ul{list-style:none;margin:0;padding:0}
.cm-commerce li{font-size:13px;padding:8px 0 8px 16px;border-top:1px solid var(--line);position:relative}
.cm-commerce li:before{content:'';position:absolute;left:0;top:15px;width:6px;height:6px;border-radius:50%;background:var(--green)}
.cm-commerce-body>div+div li:before{background:var(--orange)}
.cm-page .fs-ai .cm-commerce p{font-size:13px;color:var(--gray);margin-top:12px}
.cm-auto-ctrls{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.cm-triggers{display:flex;gap:5px;flex-wrap:wrap}
.fs-ai .cm-triggers button{background:transparent;border-color:#ffffff45;color:#fff}
.fs-ai .cm-triggers button[aria-pressed=true]{background:#fff;color:var(--green);border-color:#fff}

/* 04 Migration, performance, selection */
.cm-mig{border:1px solid var(--line);border-radius:5px;background:#fff;overflow:hidden;box-shadow:0 18px 44px #1d54420a}
.cm-mig .sf-window{padding-block:9px}
.cm-mig-run{padding:6px 12px!important;min-height:36px!important;font-size:12px}
.cm-mig-stages{list-style:none;display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin:0;padding:18px 20px 0}
.cm-mig-stages li{position:relative;font-size:12px;color:var(--gray);border-top:2px solid var(--line);padding-top:9px;transition:color .3s,border-color .3s}
.cm-mig-stages li.done{border-color:var(--green);color:var(--green)}
.cm-mig-stages li.on{border-color:var(--orange);color:var(--green);font-weight:600}
.cm-mig-body{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;padding:18px 20px}
.cm-mig-pane small{display:block;font-size:10px;color:var(--gray);margin-bottom:6px}
.cm-mig-pane ul{list-style:none;margin:0;padding:0}
.cm-mig-pane li{display:flex;justify-content:space-between;gap:8px;font-size:12px;padding:8px 10px;border:1px solid var(--line);border-radius:3px;margin-bottom:5px;transition:opacity .4s,border-color .4s,transform .4s,background .4s}
.cm-mig-pane li span{font:10.5px ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--gray)}
.cm-mig-pane li b{font-weight:500}
[data-mig-old] li.moved{opacity:.35;transform:translateX(8px)}
[data-mig-new] li{opacity:.25;border-style:dashed}
[data-mig-new] li.in{opacity:1;border-style:solid;border-color:var(--green);background:var(--wash)}
[data-mig-new] li.in b:after{content:' ✓';color:var(--orange)}
.cm-redirects li{font:10.5px ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--gray);opacity:.25}
.cm-redirects li.in{opacity:1;color:var(--green);border-color:var(--green)}
.cm-redirects li.in:after{content:'301';margin-left:auto;color:var(--orange)}
.cm-page .cm-mig-status{font-size:12px;color:var(--green);padding:12px 20px;border-top:1px solid var(--line);background:var(--wash)}
.cm-mig-tags{margin-top:18px}
.cm-perf{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:44px}
.cm-perf>div{border-top:2px solid var(--green);padding-top:17px}
.cm-page .cm-perf h3{display:flex;align-items:center;gap:10px;font-size:22px;color:var(--green)}
.cm-perf h3 .ico{width:21px;height:21px;color:var(--orange)}
.cm-page .cm-perf p{font-size:15px;margin:10px 0 6px}
.cm-choose{margin-top:64px;border:1px solid var(--line);border-radius:6px;background:var(--wash);padding:30px;scroll-margin-top:170px}
.cm-choose-head{display:grid;grid-template-columns:.9fr 1.1fr;gap:40px;align-items:end;margin-bottom:24px}
.cm-page .cm-choose h3{font-size:30px;color:var(--green);margin:10px 0}
.cm-page .cm-choose-head p{font-size:15px}
.cm-prios{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.cm-prios button{border-radius:20px;padding:7px 13px;font-size:13px}
.cm-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0!important}
.cm-options>div{position:relative;display:grid;grid-template-columns:130px 1fr;gap:4px 18px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:4px;padding:15px 18px 19px;transition:border-color .3s,opacity .3s,box-shadow .3s}
.cm-options>div:last-child{grid-column:1/-1}
.cm-page .cm-options dt{font-size:16px;font-weight:600;color:var(--green);margin:0}
.cm-page .cm-options dd{font-size:13px;line-height:1.5}
.cm-options i{position:absolute;left:18px;right:18px;bottom:8px;height:3px;border-radius:2px;background:var(--wash)}
.cm-options em{display:block;height:100%;width:0;border-radius:2px;background:var(--green);transition:width .45s cubic-bezier(.4,0,.2,1)}
.cm-choose.has-prios .cm-options>div{opacity:.55}
.cm-choose.has-prios .cm-options>div.is-match{opacity:1}
.cm-options>div.is-best{border-color:var(--green);box-shadow:0 10px 24px #1d544214}
.cm-options>div.is-best em{background:var(--orange)}
.cm-options>div.is-best dt:after{content:'Strong fit';display:block;font-size:10px;font-weight:600;color:var(--orange);margin-top:2px}
.cm-page .cm-choose-note{font-size:12px;color:var(--green);margin-top:14px}

/* 05 Work */
.cm-feature-case{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}
.cm-feature-case .fs-case-visual{height:auto;min-height:380px;margin:0}
.cm-feature-copy h3{font-size:26px;margin:12px 0 18px}
.cm-feature-copy dl>div{display:grid;grid-template-columns:130px 1fr;gap:16px;border-top:1px solid var(--line);padding:11px 0}
.cm-page .cm-feature-copy dt{font-size:12px;font-weight:600;margin:0}
.cm-page .cm-feature-copy dd{font-size:14px;line-height:1.55}
.fs-diagram .fork .ico{width:13px;height:13px;vertical-align:-2px;margin-right:4px}
.cm-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:34px}
.cm-slots article{border:1px dashed rgba(29,84,66,.4);border-radius:5px;padding:22px;background:#ffffff90}
.cm-page .cm-slots h3{font-size:19px;color:var(--green);margin:10px 0 8px}
.cm-page .cm-slots p{font-size:13px}
.cm-cycle ol{grid-template-columns:repeat(7,minmax(0,1fr))}

@keyframes cm-rise{0%{transform:translateY(26px);opacity:0}25%,80%{transform:none;opacity:1}100%{opacity:1}}
@keyframes cm-hover{0%,20%,100%{transform:none;box-shadow:none;background:var(--wash)}40%,80%{transform:translateY(-6px) scale(1.04);box-shadow:0 12px 22px #1d544226;background:#fff;border-color:var(--orange)}}
@keyframes cm-bp{0%,20%{max-width:420px}35%,55%{max-width:260px}70%,90%{max-width:160px}100%{max-width:420px}}
@keyframes cm-page{0%,30%{transform:none;opacity:1}45%{transform:translateX(-30px);opacity:0}50%{transform:translateX(30px);opacity:0}65%,100%{transform:none;opacity:1}}

@media(max-width:1100px){
.cm-fit-body{grid-template-columns:150px minmax(0,1fr)}
.cm-ed-body{grid-template-columns:1fr}.cm-ed-layers{display:none}
.cm-framer{gap:30px;padding:26px}
.cm-others dl{grid-template-columns:1fr 1fr;gap:24px 26px}
.cm-cap{grid-template-columns:1fr 1fr}
.cm-choose-head{grid-template-columns:1fr;gap:16px}.cm-prios{justify-content:flex-start}
.cm-cycle ol{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:850px){
.cm-framer,.cm-duo,.cm-layers,.cm-feature-case{grid-template-columns:1fr}
.cm-commerce-body{grid-template-columns:1fr}.cm-commerce-body>div+div{border-left:0;border-top:1px solid var(--line)}
.cm-mig-body{grid-template-columns:1fr 1fr}.cm-redirects{grid-column:1/-1}
.cm-options{grid-template-columns:1fr}
.cm-slots{grid-template-columns:1fr}
.cm-perf{grid-template-columns:1fr;gap:28px}
}
@media(max-width:650px){
.cm-fit-body{grid-template-columns:1fr;min-height:0}
.cm-reqs{flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line);padding:10px}
.cm-reqs>small{display:none}.cm-reqs button{flex:none;white-space:nowrap}
.cm-canvas{min-height:260px}
.cm-fit-foot{flex-direction:column;align-items:flex-start}.cm-fit-foot>span{text-align:left}
.cm-page .cm-framer h3{font-size:30px}.cm-framer,.cm-plat{padding:20px}
.cm-motion-stage{height:250px;padding:14px}
.cm-dyn{grid-template-columns:1fr}.cm-dyn-arrow{transform:rotate(90deg);justify-self:center}
.cm-sq{grid-template-columns:1fr}
.cm-others dl,.cm-cap{grid-template-columns:1fr}
.cm-stack-cols{grid-template-columns:1fr}.cm-stack{padding:14px}
.cm-mig-stages{grid-template-columns:repeat(3,1fr);row-gap:12px}
.cm-mig-body{grid-template-columns:1fr}
.cm-choose{padding:20px}
.cm-options>div{grid-template-columns:1fr}
.cm-feature-copy dl>div{grid-template-columns:1fr;gap:3px}
.cm-cycle ol{grid-template-columns:1fr}
}
