/* 41 Sales Team homepage and industry pages: phone chat, AI cards, numbers, hiring, steps.
   Shared by index.html and the industry pages (scripts/generators/build_icp_pages.py). */
/* Homepage only. Shared tokens and components come from /assets/41st/site.css. */
.i{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;flex:none}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
section[id]{scroll-margin-top:80px}
.kicker{font-size:14px;font-weight:500;color:var(--subtle);margin:0 0 12px}
.pill-info{background:var(--info-soft);color:var(--info)}
.pill-example{background:rgba(255,255,255,.7);color:var(--muted);border:1px dashed var(--border-strong)}

/* hero */
.home-hero{padding-block:64px 88px}
.home-hero-grid{display:grid;gap:48px;grid-template-columns:minmax(0,1fr);align-items:center}
@media(min-width:1100px){.home-hero-grid{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:48px}}
.hero-eyebrow{display:block;font-size:14px;font-weight:500;line-height:1.5;color:var(--muted);margin:0 0 20px;text-wrap:balance}
.hero-eyebrow .dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--primary-text);vertical-align:middle;margin:0 8px 2px 0}
.home-hero h1{max-width:19ch;font-size:clamp(34px,4vw,50px)}
.home-hero h1 .h1-soft{color:var(--subtle)}
.home-hero .lede strong{color:var(--fg)}
@media(max-width:640px){.home-hero{padding-block:32px 64px}.hero-eyebrow{font-size:13px;margin-bottom:14px}}
/* how it works: the 1am chat */
.stage{position:relative;margin:8px auto 0;max-width:1140px;text-align:center}
.example-label{display:inline-flex;align-items:center;gap:8px;margin:0 0 16px;font-size:13px;color:var(--subtle)}
.phone{position:relative;width:min(372px,100%);margin:0 auto;padding:11px;border-radius:62px;background:linear-gradient(160deg,#3a413d,#1b201e 30%,#1b201e 70%,#3a413d);box-shadow:0 0 0 1px rgba(0,0,0,.55),inset 0 0 0 1.5px rgba(255,255,255,.09),0 50px 100px -30px rgba(23,32,27,.45),0 24px 48px -24px rgba(23,32,27,.35);text-align:left}
.screen{position:relative;border-radius:51px;overflow:hidden;background:#eef1ec;display:flex;flex-direction:column}
.island{position:absolute;top:11px;left:50%;transform:translateX(-50%);width:112px;height:32px;border-radius:20px;background:#050606;z-index:3}
.status{height:52px;padding:18px 30px 0 36px;display:flex;justify-content:space-between;align-items:flex-start;background:#f7f8f6;font:600 15px/1 var(--font)}
.status .icons{display:flex;gap:6px;align-items:center;padding-top:1px}
.status .icons svg{height:12px;width:auto;fill:var(--fg)}
.wa-head{display:flex;align-items:center;gap:10px;padding:6px 14px 10px 8px;background:#f7f8f6;border-bottom:1px solid var(--border)}
.wa-head .back{display:flex;color:var(--info)}
.wa-head .back .i{width:22px;height:22px;stroke-width:2}
.wa-av{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font:600 13px/1 var(--font);background:#dbe7fb;color:#1e3a8a;flex:none}
.wa-head .who{flex:1;min-width:0}
.wa-head .name{display:block;font:600 15px/1.2 var(--font)}
.wa-head .meta{display:block;font:400 12px/1.3 var(--font);color:var(--subtle);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wa-head .acts{display:flex;gap:18px;color:var(--info)}
.wa-head .acts .i{width:20px;height:20px}
.wall{padding:12px 10px 14px;display:flex;flex-direction:column;gap:6px;background-color:#eef1ec;background-image:radial-gradient(rgba(23,32,27,.075) 1px,transparent 1.2px);background-size:14px 14px}
.wday{align-self:center;margin:2px 0 6px;padding:5px 10px;border-radius:8px;background:var(--surface);box-shadow:var(--shadow-raised);font:500 12px/1 var(--font);color:var(--muted)}
.slot{display:flex}.slot.out{justify-content:flex-end}.slot.mid{justify-content:center}
.wb{max-width:82%;padding:6px 8px 6px 9px;border-radius:18px;box-shadow:var(--shadow-raised);font-size:14.5px;line-height:20px;color:var(--fg);display:flow-root;overflow-wrap:anywhere}
.in .wb{background:var(--bubble-customer);border-top-left-radius:6px}
.out .wb{background:var(--bubble-ai);border-top-right-radius:6px}
.bm{float:right;position:relative;top:7px;display:inline-flex;align-items:center;gap:4px;margin-left:10px;font:400 11px/1 var(--font);color:var(--subtle);white-space:nowrap}
.ai-b{display:inline-flex;align-items:center;height:15px;padding:0 5px;border-radius:var(--r-pill);background:var(--ai-soft);color:var(--ai);font:600 11px/1 var(--font)}
.ticks{width:16px;height:11px;fill:none;stroke:#53bdeb;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.linkcard{display:flex;gap:10px;align-items:center;margin:2px -2px 6px;padding:8px;border-radius:12px;background:rgba(255,255,255,.62);border:1px solid rgba(23,32,27,.06)}
.linkcard .ic{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--surface);box-shadow:var(--shadow-raised);flex:none}
.linkcard .ic .i{width:18px;height:18px}
.linkcard b{display:block;font:600 13px/1.3 var(--font)}
.linkcard span span{display:block;font:400 12px/1.35 var(--font);color:var(--muted)}
.linkcard .go{font-weight:500;color:var(--primary-text)!important}
.paid{width:88%;background:var(--surface);border-radius:16px;box-shadow:var(--shadow-panel);padding:12px;font-size:13px;line-height:18px}
.paid .prow{display:flex;align-items:center;gap:10px}
.paid .ck{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary-text);flex:none}
.paid .ck .i{width:16px;height:16px;stroke-width:2.25}
.paid .t{flex:1;min-width:0}
.paid .t b{display:block;font:600 15px/1.25 var(--font)}
.paid .t span{color:var(--subtle);font-size:12px}
.paid hr{border:0;border-top:1px solid var(--border);margin:10px 0}
.paid .rem{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12.5px}
.paid .rem .i{color:var(--info);width:14px;height:14px}
.paid .rem .pill{margin-left:auto}
.composer{display:flex;align-items:center;gap:10px;padding:8px 12px 10px;background:#f7f8f6;border-top:1px solid var(--border);color:var(--info)}
.composer .i{width:20px;height:20px}
.composer .field{flex:1;height:34px;border-radius:18px;background:var(--surface);border:1px solid var(--border);padding:0 12px;display:flex;align-items:center;font-size:14px;color:var(--subtle)}
.homebar{height:22px;background:#f7f8f6;display:grid;place-items:center}
.homebar i{width:128px;height:5px;border-radius:3px;background:var(--fg)}
.dfy{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));position:relative;list-style:none;margin:0;padding:0}
.dfy::before{content:"";position:absolute;left:20px;right:20px;top:20px;height:1px;background:var(--border-strong)}
.dfy li{position:relative;padding-right:24px}
.dfy .node{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--surface);border:1px solid var(--border-strong);box-shadow:var(--shadow-raised);position:relative}
.dfy .node .i{width:18px;height:18px}
.dfy .when{margin:20px 0 0;font-size:13px;font-weight:500;color:var(--subtle)}
.dfy h3{margin:4px 0 0;font-size:18px}
.dfy p{margin:8px 0 0;font-size:15px;color:var(--muted)}
@media(max-width:760px){
  .dfy{grid-template-columns:1fr;gap:28px}
  .dfy::before{left:19.5px;right:auto;top:20px;bottom:20px;width:1px;height:auto}
  .dfy li{display:grid;grid-template-columns:40px minmax(0,1fr);column-gap:16px;padding-right:0}
  .dfy .node{grid-row:1/4}.dfy .when{margin-top:0}
}

/* founder */
.fcard{display:grid;grid-template-columns:320px minmax(0,1fr);overflow:hidden;padding:0}
.fphoto{position:relative;min-height:380px}
.fphoto img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:66% 30%}
.ftext{padding:48px 56px;display:flex;flex-direction:column;justify-content:center}
.ftext .kicker{margin-bottom:16px}
.ftext .quote{font-size:20px;line-height:1.5;letter-spacing:-.01em;color:var(--fg);max-width:52ch;margin:0}
.ftext .quote+.quote{margin-top:12px}
.ftext .bio{margin:20px 0 0;font-size:15px;color:var(--muted);max-width:60ch}
.creds{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.fsign{margin-top:24px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
.fsign .signoff{margin:0}
.fsign a{font-size:15px;font-weight:500;text-decoration:none}
@media(max-width:860px){.fcard{grid-template-columns:1fr}.fphoto{min-height:0;aspect-ratio:3/2}.ftext{padding:28px 20px}.ftext .kicker{margin-bottom:16px}
.ftext .quote{font-size:17px}}
/* FAQ */
.faq-wrap{max-width:820px}
.faq-group{margin:36px 0 14px;font-size:17px;color:var(--subtle);font-weight:500}
.faq-group:first-of-type{margin-top:0}
.faq .faq-answer p{margin:0}
/* next to hiring */
.hires{display:grid;gap:16px;grid-template-columns:minmax(0,1fr);max-width:1040px;margin:0 auto}
@media(min-width:860px){.hires{grid-template-columns:repeat(3,minmax(0,1fr))}}
.hire{padding:24px;border-radius:var(--r-card);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-raised);display:flex;flex-direction:column;gap:10px;min-width:0}
.hire-k{margin:0;font-size:14px;font-weight:500;color:var(--subtle)}
.hire-n{margin:0;font-size:clamp(30px,3.6vw,40px);line-height:1.1;font-weight:700;letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--fg)}
.hire-n small{display:block;margin-top:4px;font-size:14px;font-weight:500;letter-spacing:0;color:var(--subtle)}
.hire-us{border-color:rgba(21,128,61,.35);background:linear-gradient(180deg,rgba(74,222,128,.10),var(--surface) 60%)}
.hire-us .hire-n{color:var(--primary-text)}
.hours{height:10px;border-radius:999px;background:var(--neutral-soft);overflow:hidden;margin-top:6px}
.hours i{display:block;height:100%;width:var(--w);border-radius:999px;background:var(--subtle);transition:width 1s var(--ease)}
.hire-us .hours i{background:var(--primary-text)}
[data-play].armed .hire:not(.show) .hours i{width:0}
.hire-h{margin:0;font-size:15px;color:var(--muted)}
.hire-link{margin-top:auto;padding-top:6px;display:inline-flex;align-items:center;gap:6px;font-size:15px;font-weight:500;text-decoration:none}
#vs-hiring .source-line{margin:18px auto 0;text-align:center;max-width:76ch}

/* live after one call */
.dfy.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.dfy.three li{padding-right:40px}
.dfy.three h3{margin-top:20px}
.live-foot{margin-top:40px}
@media(max-width:760px){.dfy.three{grid-template-columns:1fr}.dfy.three li{padding-right:0}.dfy.three h3{margin-top:0}.dfy.three .node{grid-row:1/3}.live-foot .btn{width:100%}}

/* more from 41 Labs */
.also{margin-top:40px;padding:20px 24px;border-radius:var(--r-panel);background:var(--surface);border:1px solid var(--border)}
.also p{margin:0;font-size:15px;color:var(--muted)}
.also ul{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px 20px}
.also a{font-size:15px;font-weight:500}

/* final CTA */
.final .cta-band::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(420px 300px at 0% 0%,rgba(74,222,128,.24),transparent 70%),radial-gradient(460px 320px at 100% 0%,rgba(125,211,252,.26),transparent 70%),radial-gradient(620px 300px at 50% 120%,rgba(253,214,150,.30),transparent 70%)}
.final .cta-band h2{max-width:22ch;margin-inline:auto}
@media(max-width:640px){.final .cta-band{padding:40px 20px}.final .btn-row .btn{width:100%}}
/* hero proof + CTA pair (button with a line under it that says what happens) */
.hero-proof{display:flex;align-items:flex-start;gap:10px;margin:20px 0 0;font-size:15px;line-height:1.5;color:var(--fg);font-weight:500;max-width:560px}
.hp-ico{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary-text);flex:none;margin-top:1px}
.hp-ico .i{width:13px;height:13px;stroke-width:2.5}
.cta-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 14px;margin-top:28px;align-items:start;max-width:520px}
.cta-item{display:flex;flex-direction:column;gap:10px;min-width:0}
.cta-item .btn{width:100%;padding-inline:18px;font-size:16.5px}
.cta-micro{margin:0;font-size:13.5px;line-height:1.45;color:var(--subtle)}
.cta-band .cta-pair{margin:28px auto 0}
.cta-band .cta-item{text-align:center}
@media(max-width:640px){.cta-pair{grid-template-columns:minmax(0,1fr);gap:18px;max-width:none}}

/* 2. trust strip */
.trust{background:var(--surface);border-block:1px solid var(--border);padding-block:22px}
.trust-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px}
.trust-label{margin:0;font-size:13.5px;font-weight:500;color:var(--subtle);order:0}
.trust-more{order:1}
.trust-logos{list-style:none;margin:6px 0 0;padding:0;order:2;flex:1 1 100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 24px}
.trust-logos li{display:inline-flex;align-items:center;gap:9px;font-size:15px;font-weight:600;color:var(--fg);opacity:.72;white-space:nowrap;letter-spacing:-.01em}
.trust-logos img{width:22px;height:22px;filter:grayscale(1) brightness(.35)}
.trust-logos .tw{width:22px;height:22px;border-radius:6px;display:grid;place-items:center;background:var(--fg);font-size:12px;font-weight:700;color:#fff}
.trust-more{display:inline-flex;align-items:center;gap:4px;font-size:14px;font-weight:500;text-decoration:none;white-space:nowrap}
.trust-more .i{width:14px;height:14px}
.trust-cta{display:inline-flex;align-items:center;min-height:44px;gap:4px;font-size:14px;font-weight:600;text-decoration:none;white-space:nowrap}
.trust-cta .i{width:14px;height:14px}
.trust-seen{margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}
.trust-seen p{margin:0;font-size:13.5px;color:var(--subtle)}
.seen{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.seen a{display:inline-flex;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:5px 11px}
.seen img{height:24px;width:auto}
@media(min-width:1000px){.trust-seen{justify-content:space-between}}
@media(max-width:640px){.trust{padding-block:20px}.trust-logos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}.trust-logos li{font-size:14px;white-space:normal}.trust-more{order:3}.trust-seen .seen{width:100%}}
/* show-not-tell pass (18 Oct): real coloured logos, mini product visuals */
.trust-logos{gap:16px 28px}
@media(min-width:900px){.trust-logos{display:grid;grid-template-columns:repeat(5,max-content);justify-content:space-between;gap:18px 28px}}
.trust-logos li{opacity:1;gap:10px;font-size:15px}
.trust-logos img{width:26px;height:26px;filter:none;object-fit:contain}
.trust-logos img.wide{width:50px}
@media(max-width:640px){.trust-logos{grid-template-columns:repeat(2,minmax(0,1fr))}.trust-logos img{width:24px;height:24px}.trust-logos img.wide{width:46px}}
.choice p{font-size:16px}
.dfy.three h3{font-size:18px}
@media(max-width:760px){.dfy.three li{align-items:center}.dfy.three .node{grid-row:auto}}

/* 19 Oct 2026: show, don't tell. Things move only when something happens in the story:
   a message arrives, a payment lands, a number counts, a step is done. Reduced motion shows the end state. */
.pill-danger{background:var(--danger-soft);color:var(--danger)}
@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* hero stage: the phone plays a chat, tags light up beside it */
.home-hero{padding-block:56px 72px}
.hero-stage{display:flex;align-items:center;justify-content:center;gap:28px}
.stage-col{display:flex;flex-direction:column;align-items:center;min-width:0;width:min(340px,100%)}
.hero-stage .example-label{margin:0 0 12px}
.hero-stage .phone{width:100%;padding:10px;border-radius:54px}
.hero-stage .screen{border-radius:44px}
.live-chat .wall{height:448px;justify-content:flex-end;overflow:hidden}
.live-chat .wb{font-size:14px}
.live-chat .paid{width:92%}
.live-chat.is-playing [data-step]:not(.show){display:none}
.live-chat [data-step].show{animation:rise .32s var(--ease) both}
.typing{display:none}
.typing.on{display:flex;animation:rise .2s var(--ease) both}
.typing .wb{display:flex;gap:4px;align-items:center;padding:12px 14px}
.typing i{width:7px;height:7px;border-radius:50%;background:var(--subtle);opacity:.5;animation:dot 1s infinite ease-in-out}
.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}
@keyframes dot{0%,80%,100%{opacity:.3;transform:none}40%{opacity:.9;transform:translateY(-2px)}}
.chat-tags{display:none;list-style:none;margin:0;padding:0;flex-direction:column;gap:14px;width:216px;flex:none}
.chat-tag{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:var(--r-panel);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-panel);font:600 14px/1.3 var(--font);color:var(--fg);transition:opacity .32s var(--ease),transform .32s var(--ease)}
.chat-tag .ico{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;flex:none}
.chat-tag .ico .i{width:14px;height:14px}
.ico.ai{background:var(--ai-soft);color:var(--ai)}.ico.ok{background:var(--primary-soft);color:var(--primary-text)}.ico.nt{background:var(--neutral-soft);color:var(--muted)}
.chat-tags.armed .chat-tag:not(.show){opacity:0;transform:translateX(-8px)}
@media(min-width:1100px){.chat-tags{display:flex}.home-hero-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}}
@media(max-width:640px){.live-chat .wall{height:400px}.hero-stage .phone{border-radius:48px}.hero-stage .screen{border-radius:38px}}

.hero-channels{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:28px 0 0;font-size:14px;color:var(--subtle);max-width:560px}
.hc-logos{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px 16px;color:var(--fg);font-weight:500}
.hc{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.hc img{width:20px;height:20px}

/* the four AIs: one card each, one line, one small screen */
.team-grid2{display:grid;gap:16px;grid-template-columns:minmax(0,1fr);max-width:1040px;margin:0 auto}
@media(min-width:860px){.team-grid2{grid-template-columns:repeat(2,minmax(0,1fr))}}
.team-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--shadow-panel);padding:24px;display:flex;flex-direction:column;min-width:0}
.tc-head{display:flex;align-items:center;gap:10px;min-width:0}
.tc-head h3{font-size:19px;min-width:0}
.tc-head h3 a{color:inherit;text-decoration:none}
.tc-head h3 a:hover{color:var(--primary-text);text-decoration:underline}
.tc-av{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary-text);flex:none}
.tc-pills{margin-left:auto;display:flex;gap:6px;flex:none}
.team-card .line{margin:8px 0 16px;color:var(--muted);font-size:16px;line-height:1.45}
.scene{margin-top:auto;border-radius:var(--r-panel);background:var(--bg);border:1px solid var(--border);padding:12px;min-height:200px;display:flex;flex-direction:column;gap:8px;overflow:hidden}
.scene-bar{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:2px 4px 4px;font-size:13px}
.scene-bar b{font-weight:600}
.scene-bar span{color:var(--subtle);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.scene-row{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:8px 10px;box-shadow:var(--shadow-raised);min-width:0}
.sr-av{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font:600 11.5px/1 var(--font);flex:none}
.av-a{background:#fde2e7;color:#9d174d}.av-b{background:#dbeafe;color:#1e3a8a}.av-c{background:#fef3c7;color:#92400e}
.sr-ic{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--neutral-soft);color:var(--muted);flex:none}
.sr-ic img{width:18px;height:18px}
.sr-alert{background:var(--danger-soft);color:var(--danger)}
.sr-t{flex:1;min-width:0}
.sr-t b{display:block;font-size:14px;line-height:1.3;font-weight:600}
.sr-t span{display:block;font-size:12.5px;line-height:1.35;color:var(--subtle);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.scene .pill{flex:none;transition:background .2s var(--ease),color .2s var(--ease)}
.m-box{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px 14px 6px;box-shadow:var(--shadow-raised)}
.m-n{font-size:30px;line-height:36px;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.m-spark{display:block;width:100%;height:48px;margin-top:4px}
.team-card.soon .scene{opacity:.55}
.scene-note{text-align:center;font-size:12.5px;color:var(--subtle);margin:14px 0 0}
.sec-cta{margin-top:28px}
[data-play].armed [data-step]{transition:opacity .32s var(--ease),transform .32s var(--ease)}
[data-play].armed [data-step]:not(.show){opacity:0;transform:translateY(8px)}
[data-play].armed .m-line{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.1s var(--ease)}
[data-play].armed .m-fill{opacity:0;transition:opacity .6s var(--ease) .5s}
[data-play].armed .show .m-line{stroke-dashoffset:0}
[data-play].armed .show .m-fill{opacity:1}
@media(max-width:640px){.team-card{padding:18px}.tc-head h3{font-size:17px}.scene{min-height:0}}

/* the gap, in numbers */
.vs{display:grid;gap:16px;grid-template-columns:minmax(0,1fr);max-width:1040px;margin:0 auto}
@media(min-width:760px){.vs{grid-template-columns:repeat(2,minmax(0,1fr))}}
.vs-card{padding:32px;border-radius:var(--r-card);border:1px solid var(--border);background:var(--bg)}
.vs-them{background:var(--fg);border-color:transparent;color:#fff}
.vs-k{margin:0 0 10px;font-size:14px;font-weight:500;color:var(--subtle)}
.vs-them .vs-k{color:rgba(255,255,255,.62)}
.big{font-size:clamp(56px,8vw,96px);line-height:1;font-weight:700;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.big small{font-size:.3em;font-weight:600;letter-spacing:-.01em}
.vs-them .big{color:#f87171}
.vs-us .big{color:var(--primary-text)}
.vs-card>p:last-child{margin:14px 0 0;font-size:16px;line-height:1.45;color:var(--muted)}
.vs-them>p:last-child{color:rgba(255,255,255,.8)}
.vs-them a{color:#fff;text-underline-offset:3px}
.facts{list-style:none;margin:16px auto 0;padding:0;display:grid;gap:16px;grid-template-columns:minmax(0,1fr);max-width:1040px}
@media(min-width:760px){.facts{grid-template-columns:repeat(3,minmax(0,1fr))}}
.facts li{padding:24px;border-radius:var(--r-card);background:var(--bg);border:1px solid var(--border)}
.facts b{display:block;font-size:clamp(32px,4vw,44px);line-height:1.1;font-weight:700;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.facts li>span{display:block;margin-top:8px;color:var(--muted);font-size:15px;line-height:1.45}
#the-gap .source-line{margin:18px auto 0;text-align:center;max-width:70ch}
@media(max-width:640px){.vs-card,.facts li{padding:22px 20px}}

/* live after one call */
.dfy.three{max-width:900px;margin:0 auto}
.dfy .node{background:var(--primary-soft);border-color:transparent;color:var(--primary-text);transition:background .32s var(--ease),color .32s var(--ease),border-color .32s var(--ease)}
.dfy h3{transition:color .32s var(--ease)}
.dfy.armed [data-step]:not(.show){opacity:1;transform:none}
.dfy.armed li:not(.show) .node{background:var(--surface);border-color:var(--border-strong);color:var(--subtle)}
.dfy.armed li:not(.show) h3{color:var(--subtle)}
.promises{list-style:none;margin:40px auto 0;padding:0;display:grid;grid-template-columns:repeat(2,max-content);justify-content:center;gap:10px 12px}
.dfy.three::before{right:calc(33.333% - 20px)}
.promise{display:inline-flex;align-items:center;gap:10px;padding:10px 16px 10px 10px;border-radius:var(--r-pill);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-raised);font-size:15px;font-weight:500;color:var(--fg)}
.rk{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary-text);flex:none}
.rk .i{width:13px;height:13px;stroke-width:2.5}
.built-for{margin:40px auto 0;text-align:center}
.built-for p{margin:0 0 12px;font-size:14px;font-weight:500;color:var(--subtle)}
.trade-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.trade-chips a{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:var(--r-pill);border:1px solid var(--border-strong);background:var(--surface);color:var(--fg);text-decoration:none;font-size:15px;font-weight:500}
.trade-chips a:hover{background:var(--neutral-soft)}
.trade-chips .i{color:var(--muted)}
.all-ind2{display:inline-block;margin-top:14px;font-size:15px;font-weight:500}
.live-foot{margin-top:36px;text-align:center}
@media(max-width:640px){.promises{grid-template-columns:minmax(0,1fr)}.promise{width:100%}.live-foot .btn{width:100%}}

@media (prefers-reduced-motion: reduce){.typing.on,.live-chat [data-step].show{animation:none}.typing i{animation:none}}


/* Trust strip as the homepage has it since 25 Oct (the industry pages lift the same strip from index.html):
   pill label, the Outlook icon, two rows of four on a laptop, one row from 1200px. */
.trust-label{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px 10px}
.trust-logos .tl-svg{width:26px;height:26px;flex:none}
@media(min-width:900px){#trust .trust-logos{display:grid;grid-template-columns:repeat(4,max-content);justify-content:space-between;gap:16px 28px}}
@media(min-width:1200px){#trust .trust-logos{grid-template-columns:repeat(8,max-content);gap:16px 20px}}
@media(max-width:640px){.trust-logos .tl-svg{width:24px;height:24px}}

/* QA round 1 (25 Oct 2026): trust strip centred on phones and tablet, 44px tap targets. */
@media(max-width:767px){#trust .trust-label{justify-content:center}}
@media(min-width:768px) and (max-width:1099px){#trust .trust-logos{justify-content:center;gap:12px 28px}}
.seen a{min-height:44px;justify-content:center}
.hire-link{min-height:44px}
.tc-head h3 a{display:inline-block;padding-block:12px;margin-block:-12px}
/* Site QA round 2 (25 Oct): industry page cards at 320 to 400px put the Live/Early pills under the title, so the h3 stays on one line
   (scoped to .team-grid2: the homepage bento is wrapped by site.css). The hero phone fits a 568px screen. */
@media(max-width:400px){.team-grid2 .team-card .tc-head{flex-wrap:wrap;row-gap:6px}.team-grid2 .team-card .tc-head h3{flex:1 1 calc(100% - 44px)}.team-grid2 .team-card .tc-pills{margin-left:44px}.live-chat .wall{height:340px}}

/* 26 Oct 2026, How you start (Alexander: "Centralize the logos here, and the last one should just say 'Live' with a nice
   animation"). .dfy-c: every icon sits centred above its label, on laptop and phone, and the line runs through the
   icon centres, from the first to the last. --n is the number of steps. The green line fills as the steps play.
   .step-live: the last step, a green check that pops with a soft pulse ring each time it scrolls into view.
   Without JS or with reduced motion it shows the finished state. Any page can use both: <ol class="dfy dfy-c" data-play>
   with <li data-step class="step-live"> last, plus alive.js. */
.dfy.dfy-c{--n:3;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:0;max-width:760px;margin:0 auto}
.dfy.dfy-c::before,.dfy.dfy-c::after{content:"";position:absolute;top:19.5px;bottom:auto;left:calc(50% / var(--n));right:calc(50% / var(--n));width:auto;height:1px;background:var(--border-strong)}
.dfy.dfy-c::after{height:2px;top:19px;background:var(--primary);transform-origin:left center;transition:transform 1.3s var(--ease)}
.dfy.dfy-c.armed:not(.is-playing):not(.is-done)::after{transform:scaleX(0)}
.dfy.dfy-c li{display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 8px;min-width:0}
.dfy.dfy-c .node{margin:0 auto;grid-row:auto;z-index:1}
.dfy-c li:not(.step-live) .node{background:linear-gradient(var(--primary-soft),var(--primary-soft)),var(--surface)} /* solid, so the line passes behind the icon */
.dfy.dfy-c h3{margin:14px 0 0;font-size:18px;line-height:1.3;text-wrap:balance}
.dfy.dfy-c .when{margin:14px 0 0}
.dfy.dfy-c .when+h3{margin-top:4px}
.dfy.dfy-c p{max-width:28ch;margin-inline:auto}
@media(max-width:760px){.dfy.dfy-c{gap:0}.dfy.dfy-c li{padding:0 4px}.dfy.dfy-c h3{font-size:16px}}
.dfy-c .step-live .node{background:var(--primary);border-color:transparent;color:var(--on-primary)}
.dfy-c .step-live .node .i{stroke-width:2.5}
.dfy-c .step-live h3{color:var(--primary-text)}
.dfy-c .step-live .node::after{content:"";position:absolute;inset:-1px;border-radius:50%;pointer-events:none;box-shadow:0 0 0 0 rgba(74,222,128,0)}
.dfy-c.armed .step-live.show .node{animation:live-pop .6s cubic-bezier(.34,1.56,.64,1) both}
.dfy-c.armed .step-live.show .node::after{animation:live-ring 1.5s ease-out .3s 2}
.dfy-c.armed .step-live.show h3{animation:live-word .5s var(--ease) .15s both}
@keyframes live-pop{0%{transform:scale(.55)}55%{transform:scale(1.18)}100%{transform:scale(1)}}
@keyframes live-ring{0%{box-shadow:0 0 0 0 rgba(74,222,128,.55)}100%{box-shadow:0 0 0 18px rgba(74,222,128,0)}}
@keyframes live-word{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion: reduce){.dfy-c.armed .step-live.show .node,.dfy-c.armed .step-live.show .node::after,.dfy-c.armed .step-live.show h3{animation:none}.dfy.dfy-c::after{transition:none;transform:none}}
