/* Public module pages (views/landing/module.php) and the comparison pages, on top of
   landing-story.css: the capability grid, the screen tour (desktop windows, phones, or a window
   with a phone over its corner), who each part is for, plan chips, a page's parts, and every
   feature in the module by plan. */
.fs-hero{padding-bottom:clamp(28px,4vw,48px)}
.fs-hero .cxa-hero-grid{grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr)}
.fs-h1{font-size:clamp(2.1rem,3.7vw,3.15rem);line-height:1.06}
.fs-price{margin:16px 0 0;font-weight:800;font-size:1.05rem;color:var(--cx-strong)}
.fs-hero-stage{padding:0 84px 56px 0}
.fs-hero-stage .cx-phone-sm{right:0;bottom:0;width:190px}
.fs-jump{display:flex;flex-wrap:wrap;gap:8px;margin-top:clamp(28px,4vw,48px);font-family:var(--cx-font)}
.fs-jump a{padding:7px 13px;border-radius:999px;border:1px solid var(--cx-line);background:#fff;color:var(--cx-ink);font-size:.86rem;font-weight:700;text-decoration:none}
.fs-jump a:hover{border-color:var(--cx-teal);color:var(--cx-teal-dark)}
.fs-jump-parts{flex-direction:column;gap:10px}
.fs-jump-group{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.fs-jump a.fs-jump-part{border-color:transparent;background:var(--cx-navy);color:#fff}
.fs-jump a.fs-jump-part:hover{background:var(--cx-teal-dark);color:#fff}
.fs-module-kicker{display:flex;align-items:center;gap:10px}
.fs-module-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--cx-teal-soft);color:var(--cx-teal-dark)}
.fs-module-icon svg{width:19px;height:19px}
.fs-plan-line{margin:14px 0 0;padding:10px 14px;border-radius:12px;background:#fff;border:1px solid var(--cx-line);font-size:.95rem;font-weight:700;color:var(--cx-ink);max-width:40rem}
.fs-part{padding:clamp(40px,6vw,72px) 0 0;scroll-margin-top:84px}
.fs-part + .fs-row{border-top:0}
.fs-part-title{font-size:clamp(1.6rem,3vw,2.3rem)}
.fs-all{background:#fff;padding-top:clamp(44px,6vw,80px);padding-bottom:clamp(44px,6vw,80px)}
.fs-all .cx-head{margin-bottom:clamp(20px,3vw,30px)}
.fs-all-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px;margin:0;padding:0;list-style:none}
.fs-all-list li{display:grid;gap:3px;padding:12px 0;border-bottom:1px solid #eef2f5}
.fs-all-name{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-weight:800;color:var(--cx-strong)}
.fs-all-detail{font-size:.92rem;line-height:1.5;color:var(--cx-muted)}
.fs-all-more{margin:18px 0 0}

.fs-caps{background:#fff;padding-top:clamp(44px,6vw,80px);padding-bottom:clamp(44px,6vw,80px)}
.fs-caps .cx-head{margin-bottom:clamp(22px,3vw,34px)}
.fs-caps-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.fs-cap{padding:20px 20px 18px;border-radius:var(--cx-radius);border:1px solid var(--cx-line);background:#fbfcfd}
.fs-cap h3{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 6px;font-size:1.04rem;line-height:1.3;color:var(--cx-strong)}
.fs-cap p{margin:0;font-size:.93rem;line-height:1.55;color:var(--cx-muted)}
.fs-plan{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;background:#fff7e0;border:1px solid #f5d77a;color:#7a5300;font-size:.72rem;font-weight:800;letter-spacing:.02em;white-space:nowrap}

.fs-tour{background:linear-gradient(180deg,#f6fafb 0,#fff 260px)}
.fs-row{display:grid;gap:clamp(24px,4vw,48px);align-items:center;padding:clamp(36px,5vw,64px) 0;border-top:1px solid #eef2f5;scroll-margin-top:96px}
/* A desktop screen: the words in two columns above it, the screen across the page. */
.fs-row-wide{grid-template-columns:minmax(0,1fr);gap:clamp(20px,3vw,32px)}
.fs-row-wide .fs-copy{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);column-gap:clamp(24px,4vw,56px);align-items:start}
.fs-row-wide .fs-copy > *{grid-column:1}
.fs-row-wide .fs-points{grid-column:2;grid-row:1 / span 3;margin-top:4px;padding:18px 20px;border-radius:16px;background:#fff;border:1px solid var(--cx-line)}
.fs-row-wide .fs-media{max-width:1080px}
/* Phones only: the words beside them, alternating sides. */
.fs-row-phones{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.fs-row-flip .fs-copy{order:2}
.fs-tags{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.fs-copy .cx-h3{margin-top:12px}
.fs-who{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;font-size:.76rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase;background:var(--cx-navy);color:#fff}
.fs-who-employees{background:var(--cx-teal-soft);color:var(--cx-teal-dark)}
.fs-who-everyone{background:var(--cx-mint);color:#087a64}
.fs-points{display:grid;gap:8px;margin:16px 0 0;padding:0;list-style:none}
.fs-points li{display:flex;gap:10px;font-size:.95rem;line-height:1.45;color:var(--cx-ink)}
.fs-points li::before{content:"";flex:0 0 7px;height:7px;margin-top:8px;border-radius:50%;background:var(--cx-teal)}
.fs-media{min-width:0}
.fs-stage{padding-right:150px}
.fs-stage .cx-phone-sm{right:0;bottom:-36px;width:230px}
.fs-pair{flex-wrap:wrap;gap:18px}
.fs-pair .cx-phone{width:240px}
.fs-pair-3{flex-wrap:nowrap;gap:14px}
.fs-pair-3 .cx-phone{width:calc((100% - 28px) / 3);max-width:220px;padding:8px;border-radius:34px}
.fs-pair-3 .cx-phone::after{top:15px;width:54px;height:15px;margin-left:-27px}
.fs-pair-3 .cx-phone-screen{border-radius:27px}
.fs-pair-3 .cx-phone-screen.has-shot{padding-top:24px}
.fs-pair .cx-phone-screen:not(.has-shot){min-height:420px}
/* A screenshot is a full phone screen: let the frame fit it instead of cropping its bottom bar. */
.fs-hero .cx-phone-screen.has-shot,.fs-tour .cx-phone-screen.has-shot{aspect-ratio:auto}
.fs-hero .cx-phone-screen.has-shot > img,.fs-tour .cx-phone-screen.has-shot > img{height:auto}

.fs-quick{padding:0 20px clamp(40px,5vw,64px);background:#fff}

/* Optional blocks (AppyPayroll): how it works, capabilities by group, who does what, where it
   runs, and pricing with an example. */
.fs-steps-section{background:var(--cx-cream);padding-top:clamp(44px,6vw,80px);padding-bottom:clamp(44px,6vw,80px)}
.fs-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:clamp(22px,3vw,34px) 0 0;padding:0;list-style:none}
.fs-step{position:relative;padding:20px 20px 18px 66px;border-radius:var(--cx-radius);background:#fff;border:1px solid var(--cx-line)}
.fs-step-num{position:absolute;left:20px;top:18px;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--cx-navy);color:#fff;font-weight:800;font-size:.95rem}
.fs-step h3{margin:4px 0 6px;font-size:1.04rem;line-height:1.3;color:var(--cx-strong)}
.fs-step p{margin:0;font-size:.93rem;line-height:1.55;color:var(--cx-muted)}
.fs-group{margin-top:clamp(28px,3.5vw,42px)}
.fs-caps .cx-head + .fs-group{margin-top:0}
.fs-group-title{margin:0 0 14px;padding-bottom:10px;border-bottom:2px solid var(--cx-teal-soft);font-family:var(--cx-display);font-size:1.25rem;line-height:1.25;color:var(--cx-strong)}
.fs-group-hint{display:none;margin-left:8px;font-family:var(--cx-font);font-size:.8rem;font-weight:700;color:var(--cx-muted)}
.fs-cap h4{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 6px;font-size:1.04rem;line-height:1.3;color:var(--cx-strong)}
.fs-yours{background:#fff;padding-top:clamp(44px,6vw,80px);padding-bottom:clamp(44px,6vw,80px)}
.fs-yours-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px;margin:clamp(22px,3vw,30px) 0 0;padding:0;list-style:none}
.fs-yours-list li{position:relative;display:grid;align-content:start;gap:4px;padding:16px 18px 16px 52px;border-radius:14px;border:1px solid var(--cx-line);background:#fbfcfd}
.fs-yours-list li::before{content:"";position:absolute;left:20px;top:20px;width:14px;height:14px;border-radius:50%;border:4px solid var(--cx-teal-soft);background:var(--cx-teal)}
.fs-yours-list strong{font-size:1rem;color:var(--cx-strong)}
.fs-yours-list span{font-size:.93rem;line-height:1.55;color:var(--cx-muted)}
.fs-next{margin:18px 0 0;padding:12px 16px;border-radius:12px;background:var(--cx-teal-soft);color:var(--cx-teal-dark);font-size:.95rem;font-weight:700;line-height:1.5;max-width:52rem}
.fs-states{background:linear-gradient(180deg,#f6fafb 0,#fff 260px);padding-top:clamp(44px,6vw,80px);padding-bottom:clamp(44px,6vw,80px)}
.fs-state-list{display:flex;flex-wrap:wrap;gap:8px;margin:clamp(20px,3vw,28px) 0 0;padding:0;list-style:none}
.fs-state-list li{padding:6px 12px;border-radius:999px;background:#fff;border:1px solid var(--cx-line);font-size:.88rem;font-weight:700;color:var(--cx-ink)}
.fs-states-not{margin:18px 0 0;font-weight:800;color:var(--cx-strong)}
.fs-states-note{margin:8px 0 0;max-width:46rem;font-size:.95rem;line-height:1.6;color:var(--cx-muted)}
.fs-pricing{background:#fff;padding-top:clamp(44px,6vw,80px);padding-bottom:clamp(44px,6vw,80px)}
.fs-pricing-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(20px,3vw,36px);align-items:start;margin-top:clamp(22px,3vw,30px)}
.fs-price-list{margin:0;border-top:1px solid var(--cx-line)}
.fs-price-row,.fs-example-row{display:flex;justify-content:space-between;align-items:baseline;gap:18px;padding:16px 0;border-bottom:1px solid var(--cx-line)}
.fs-price-row dt,.fs-example-row dt{display:grid;gap:4px;min-width:0;font-weight:800;color:var(--cx-strong)}
.fs-price-row dt small,.fs-example-row dt small{font-size:.88rem;font-weight:500;line-height:1.5;color:var(--cx-muted)}
.fs-price-row dd,.fs-example-row dd{margin:0;font-size:1.1rem;font-weight:800;white-space:nowrap;text-align:right;color:var(--cx-teal-dark)}
.fs-example{padding:22px 22px 24px;border-radius:var(--cx-radius);background:var(--cx-navy);color:#fff}
.fs-example h3{margin:0 0 4px;font-size:1.1rem;line-height:1.3;color:#fff}
.fs-example dl{margin:0 0 20px}
.fs-example-row{padding:12px 0;border-bottom-color:rgba(255,255,255,.16)}
.fs-example-row dt{font-weight:700;color:#fff}
.fs-example-row dt small{color:rgba(255,255,255,.74)}
.fs-example-row dd{color:#fff}

@media (max-width:1060px){
  .fs-hero .cxa-hero-grid,.fs-row-phones{grid-template-columns:minmax(0,1fr)}
  .fs-row-flip .fs-copy{order:0}
  .fs-hero-stage{max-width:720px}
  .fs-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fs-pricing-grid{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:860px){
  .fs-row-wide .fs-copy{grid-template-columns:minmax(0,1fr)}
  .fs-row-wide .fs-points{grid-column:1;grid-row:auto;margin-top:16px}
}
@media (max-width:720px){
  .fs-hero-stage{padding:0}
  .fs-hero-stage .cx-phone-sm,.fs-stage .cx-phone-sm{position:relative;right:auto;bottom:auto;width:200px;margin:-48px auto 0}
  .fs-stage{padding:0}
  .fs-jump{display:none}
  .fs-pair{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;padding:4px 2px 12px;scroll-snap-type:x mandatory}
  .fs-pair .cx-phone,.fs-pair-3 .cx-phone{flex:0 0 auto;width:min(62vw,240px);scroll-snap-align:center}
  .fs-caps-grid{grid-template-columns:minmax(0,1fr)}
  .fs-all-list{grid-template-columns:minmax(0,1fr)}
  .fs-steps,.fs-yours-list{grid-template-columns:minmax(0,1fr)}
  .fs-price-row,.fs-example-row{gap:12px}
  /* A long directory of cards: each group swipes sideways inside itself on a phone. */
  .fs-group .fs-caps-grid{display:flex;gap:12px;overflow-x:auto;padding:2px 2px 14px;scroll-snap-type:x mandatory;overscroll-behavior-x:contain}
  .fs-group .fs-cap{flex:0 0 min(84%,320px);scroll-snap-align:start}
  .fs-group-hint{display:inline}
}
