/* The public pages: the landing page (/) and the industry sales pages (/for, /for/<slug>).
   Loaded after app.css, which holds the tokens (navy, lime, Manrope) and the shared components. */
html { scroll-behavior: smooth; scroll-padding-top: 76px; }
body { background: var(--bg); }
.wrap { width: 100%; max-width: var(--maxw); margin: 0 auto; padding: 0 var(--s4); }
@media (min-width: 720px) { .wrap { padding: 0 var(--s6); } }
section { padding: var(--s8) 0; }
@media (min-width: 900px) { section { padding: var(--s9) 0; } }
.lead { font-size: 1.12rem; color: var(--text-2); line-height: 1.6; }
.sec-head { max-width: 680px; margin-bottom: var(--s6); }
.sec-head h2 { font-size: clamp(1.85rem, 1.3rem + 2vw, 2.9rem); letter-spacing: -1.2px; line-height: 1.06; }
.sec-head p { margin-top: var(--s3); color: var(--muted); font-size: 1.08rem; }
.center { text-align: center; margin-left: auto; margin-right: auto; }
.on-navy { background: var(--navy); color: var(--on-navy); }
.on-navy .eyebrow { color: var(--lime); }
.on-navy h1, .on-navy h2, .on-navy h3 { color: var(--on-navy); }
.on-navy :focus-visible { outline-color: var(--lime); }

/* nav: navy, like the hero */
/* opaque enough that page text never shows through it */
.nav { position: sticky; top: 0; z-index: 30; background: rgba(11, 21, 48, .96); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-bottom: 1px solid var(--navy-line); }
.nav .wrap { display: flex; align-items: center; gap: var(--s4); height: 64px; }
.nav .brand { color: var(--on-navy); }
.nav .links { display: none; gap: var(--s5); margin-left: var(--s5); }
.nav .links a { color: var(--on-navy-2); text-decoration: none; font-weight: 600; font-size: .95rem; }
.nav .links a:hover { color: var(--on-navy); }
.nav .end { margin-left: auto; display: flex; gap: var(--s2); align-items: center; }
.nav .signin { color: var(--on-navy); text-decoration: none; font-weight: 600; font-size: .95rem; padding: 12px 8px; white-space: nowrap; }
.nav .signin:hover { color: var(--lime); }
@media (min-width: 900px) { .nav .links { display: flex; } }
@media (max-width: 480px) { .nav .wide-only { display: none; } }
@media (max-width: 340px) { .nav .signin { display: none; } }

/* lime CTAs on navy */
.btn.cta { background: var(--lime); color: var(--navy); box-shadow: none; }
.btn.cta:hover { background: var(--lime-hover); }
.btn.outline { background: transparent; color: var(--on-navy); border: 1px solid #3A4770; box-shadow: none; }
.btn.outline:hover { border-color: var(--on-navy-2); background: var(--navy-2); }

/* hero */
.hero { padding: var(--s7) 0 var(--s8); position: relative; overflow: hidden; }
.hero::before { content: ""; position: absolute; right: -20%; top: -30%; width: 80vw; height: 80vw; max-width: 900px; max-height: 900px; border-radius: 50%;
  background: radial-gradient(circle, rgba(198, 244, 50, .10) 0%, transparent 62%); pointer-events: none; }
.hero .wrap { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s7); align-items: center; position: relative; }
@media (min-width: 980px) { .hero { padding: var(--s9) 0 calc(var(--s9) + var(--s4)); } .hero .wrap { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); } }
.hero .eyebrow { font-size: .74rem; margin-bottom: var(--s4); }
.hero h1 { font-size: clamp(2.6rem, 1.5rem + 4.6vw, 4.6rem); letter-spacing: -1.4px; line-height: 1.0; font-weight: 800; max-width: 16ch; }
.hero h1 em { font-style: normal; color: var(--lime); }
.hero .lead { margin-top: var(--s5); max-width: 40ch; font-size: 1.18rem; color: var(--on-navy-2); }
.hero .ctas { display: flex; flex-wrap: wrap; gap: var(--s3); margin-top: var(--s6); }
@media (max-width: 480px) { .hero .ctas .btn { width: 100%; } }
.hero .trust-row { margin-top: var(--s5); color: var(--on-navy-2); }
.hero .trust-row .icon { color: var(--lime); }

/* the hero device */
.device { position: relative; max-width: 440px; width: 100%; margin: 0 auto; border-radius: 24px; padding: var(--s5); color: var(--on-navy);
  background: var(--navy-2); border: 1px solid var(--navy-line); box-shadow: 0 40px 100px -30px rgba(0, 0, 0, .6); }
.device .dtop { display: flex; align-items: center; justify-content: space-between; font-size: .78rem; color: var(--on-navy-2); font-weight: 600; }
.device .dtop .live { display: inline-flex; align-items: center; gap: 8px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--lime); }
.device .dtop .live i { width: 8px; height: 8px; border-radius: 50%; background: var(--lime); animation: pulse-ring 1.6s infinite; --ok: #C6F432; }
.device .orb { margin: var(--s5) auto var(--s4); width: 88px; height: 88px; }
.device .orb::before { display: none; }
.device .dname { text-align: center; font-weight: 800; font-size: 1.15rem; letter-spacing: -.4px; color: var(--on-navy); }
.device .dsub { text-align: center; font-size: .82rem; color: var(--on-navy-3); margin-bottom: var(--s5); }
.device .convo { margin: 0 auto; }
.device .convo .b.ai { background: var(--navy); }
.device .alert { position: absolute; left: -12px; right: auto; bottom: -24px; display: flex; gap: 10px; align-items: center; padding: 12px 14px; border-radius: var(--r-lg);
  background: #fff; color: var(--navy); box-shadow: var(--shadow-3); font-size: .86rem; max-width: 300px; animation: fade-up 600ms 900ms var(--ease) both; }
.device .alert .ai { width: 34px; height: 34px; border-radius: 10px; background: #FBE6E3; color: #B4261D; display: grid; place-items: center; flex: none; }
.device .alert b { display: block; font-size: .8rem; font-weight: 800; letter-spacing: .02em; }
@media (max-width: 480px) { .device .alert { left: 8px; } }
.example-tag { position: absolute; top: -12px; right: 20px; font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; background: var(--lime); color: var(--navy); padding: 5px 10px; border-radius: 8px; }

/* works with */
.strip { padding: var(--s5) 0; border-bottom: 1px solid var(--line); background: var(--surface); }
.strip .wrap { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s3) var(--s5); }
.strip .label { margin: 0; color: var(--muted); font-weight: 800; font-size: .74rem; letter-spacing: .12em; text-transform: uppercase; }
.strip .names { display: flex; flex-wrap: wrap; gap: var(--s2) var(--s5); }
.strip .names span { font-weight: 800; color: var(--text); letter-spacing: -.3px; font-size: 1rem; }
.strip .names span:last-child { font-weight: 600; color: var(--muted); }

/* steps */
.steps { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s4); }
@media (min-width: 900px) { .steps { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s5); } }
.step { padding: var(--s5); border-radius: var(--r-lg); background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-1); }
.step .art { height: 150px; border-radius: var(--r); background: var(--bg-2); margin-bottom: var(--s5); position: relative; overflow: hidden; display: grid; place-items: center; }
.step .n { display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 8px; background: var(--lime); color: var(--navy); font-weight: 800; font-size: .88rem; margin-bottom: var(--s3); }
.step h3 { font-size: 1.25rem; letter-spacing: -.5px; } .step p { margin-top: var(--s2); color: var(--muted); }
.art-browser { width: 78%; border-radius: 10px; background: var(--surface); box-shadow: var(--shadow-2); overflow: hidden; border: 1px solid var(--line); }
.art-browser .bar { display: flex; gap: 5px; padding: 8px 10px; border-bottom: 1px solid var(--line); align-items: center; }
.art-browser .bar i { width: 7px; height: 7px; border-radius: 50%; background: var(--line-strong); }
.art-browser .bar span { margin-left: 8px; flex: 1; height: 14px; border-radius: 7px; background: var(--bg-2); font-size: .62rem; color: var(--muted); padding: 0 8px; line-height: 14px; overflow: hidden; white-space: nowrap; }
.art-browser .lines { padding: 10px 12px; }
.art-browser .lines i { display: block; height: 6px; border-radius: 3px; background: var(--bg-2); margin: 6px 0; }
.art-browser .lines i.hl { background: var(--lime); width: 60%; }
.art-browser .lines i:nth-child(2) { width: 85%; } .art-browser .lines i:nth-child(4) { width: 70%; }
.art-forward { display: flex; align-items: center; gap: 14px; }
.art-forward .ph { width: 54px; height: 92px; border-radius: 12px; background: var(--surface); box-shadow: var(--shadow-2); border: 1px solid var(--line); display: grid; place-items: center; color: var(--text); }
.art-forward .arrow { color: var(--text); }
.step .orb { width: 72px; height: 72px; margin: 0; box-shadow: none; }
.step .orb::before { display: none; }

/* features */
.features { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s3); }
@media (min-width: 640px) { .features { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 980px) { .features { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s4); } }
.feature { padding: var(--s5); border-radius: var(--r-lg); background: var(--surface); border: 1px solid var(--line); }
.feature .fi { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--navy); color: var(--lime); margin-bottom: var(--s4); }
.feature .fi.warm { background: var(--lime); color: var(--navy); }
.feature h3 { font-size: 1.08rem; letter-spacing: -.3px; } .feature p { margin-top: 6px; color: var(--muted); font-size: .95rem; }

/* types */
.types { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s3); }
@media (min-width: 640px) { .types { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1040px) { .types { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.type { padding: var(--s5); border-radius: var(--r-lg); background: var(--surface); border: 1px solid var(--line); display: flex; flex-direction: column; gap: var(--s3); }
.type .th { display: flex; align-items: center; gap: var(--s3); }
.type .th .ti { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--navy); color: var(--lime); flex: none; }
.type h3 { font-size: 1.1rem; letter-spacing: -.3px; }
.type ul { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 8px; }
.type li { display: flex; gap: 10px; align-items: flex-start; color: var(--text-2); font-size: .94rem; }
.type li .icon { width: 16px; height: 16px; color: var(--text); margin-top: 3px; stroke-width: 2.6; }
.type .note { font-size: .8rem; color: var(--muted); margin-top: auto; padding-top: var(--s2); border-top: 1px solid var(--line); }

/* trust (navy band) */
.band { background: var(--navy); color: var(--on-navy); border-top: 1px solid var(--navy-line); border-bottom: 1px solid var(--navy-line); }
.band .sec-head h2 { color: var(--on-navy); } .band .sec-head p { color: var(--on-navy-2); } .band .eyebrow { color: var(--lime); }
.trust { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s4); }
@media (min-width: 720px) { .trust { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1040px) { .trust { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.trust div { padding: var(--s5); border-radius: var(--r-lg); background: var(--navy-2); border: 1px solid var(--navy-line); }
.trust .icon { color: var(--lime); width: 26px; height: 26px; margin-bottom: var(--s4); }
.trust h3 { color: var(--on-navy); font-size: 1.08rem; letter-spacing: -.3px; } .trust p { color: var(--on-navy-2); margin-top: 6px; font-size: .95rem; }

/* pricing */
.pricing { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s4); max-width: 980px; margin: 0 auto; }
@media (min-width: 820px) { .pricing.n2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .pricing.n3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .pricing.n4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.price-card { padding: var(--s6); border-radius: var(--r-lg); background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-2); display: flex; flex-direction: column; gap: var(--s3); max-width: 460px; width: 100%; margin: 0 auto; }
.pricing.n2 .price-card, .pricing.n3 .price-card, .pricing.n4 .price-card { max-width: none; }
.price-card.feature-card { border: 2px solid var(--text); }
.price-card .amount { font-size: 2.8rem; font-weight: 800; letter-spacing: -1.4px; line-height: 1; font-variant-numeric: tabular-nums; }
.price-card .amount small { font-size: 1rem; font-weight: 600; color: var(--muted); letter-spacing: 0; }
.price-card ul { list-style: none; margin: var(--s2) 0 var(--s4); padding: 0; display: flex; flex-direction: column; gap: 10px; }
.price-card li { display: flex; gap: 10px; color: var(--text-2); }
.price-card li .icon { width: 18px; height: 18px; color: var(--text); margin-top: 2px; stroke-width: 2.6; }
.price-card .btn { margin-top: auto; }

/* faq */
.faq { max-width: 760px; margin: 0 auto; }
.faq details { border-bottom: 1px solid var(--line); }
.faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: var(--s4); padding: var(--s5) 0; font-weight: 800; letter-spacing: -.2px; font-size: 1.05rem; min-height: 44px; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary .icon { transition: transform var(--med) var(--ease); color: var(--text); flex: none; }
.faq details[open] summary .icon { transform: rotate(45deg); }
.faq details p { padding: 0 0 var(--s5); color: var(--text-2); max-width: 64ch; }

/* final cta */
.final { text-align: center; border-radius: var(--r-xl); padding: var(--s8) var(--s5); position: relative; overflow: hidden;
  background: radial-gradient(60% 70% at 50% 0%, rgba(198, 244, 50, .12) 0%, transparent 70%), var(--navy); border: 1px solid var(--navy-line); color: var(--on-navy); }
.final h2 { color: var(--on-navy); font-size: clamp(2rem, 1.3rem + 2.4vw, 3.1rem); letter-spacing: -1.4px; line-height: 1.05; }
.final p { color: var(--on-navy-2); margin: var(--s3) auto 0; max-width: 46ch; font-size: 1.08rem; }
.final .ctas { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--s3); margin-top: var(--s6); }
@media (max-width: 480px) { .final .ctas .btn { width: 100%; } }
.final .orb { margin-bottom: var(--s5); width: 80px; height: 80px; }
.final .orb::before { display: none; }

footer { padding: var(--s6) 0 var(--s7); color: var(--muted); font-size: .9rem; border-top: 1px solid var(--line); }
footer .wrap { display: flex; flex-wrap: wrap; gap: var(--s4); justify-content: space-between; align-items: center; }
footer .brand { font-size: 1rem; }
footer .foot-brand { flex-wrap: wrap; gap: var(--s2) var(--s4); }
footer nav { display: flex; gap: var(--s2) var(--s4); flex-wrap: wrap; }
footer a { color: var(--text-2); text-decoration: none; font-weight: 600; padding: 10px 0; } footer a:hover { color: var(--text); text-decoration: underline; }
[hidden] { display: none !important; }

/* --- landing: links from "Who it's for" to the industry pages ------------------------------- */
.inline-link { color: var(--text); font-weight: 800; text-decoration: underline; text-decoration-color: color-mix(in srgb, var(--text) 35%, transparent); }
.inline-link:hover { text-decoration-color: var(--text); }
.type-links { display: flex; flex-wrap: wrap; gap: 0 var(--s4); margin: calc(-1 * var(--s2)) 0 calc(-1 * var(--s2)); }
.type-link { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; color: var(--text); font-weight: 800; font-size: .92rem; text-decoration: none; }
.type-link .icon { transition: transform var(--fast) var(--ease); }
.type-link:hover { text-decoration: underline; } .type-link:hover .icon { transform: translateX(2px); }

/* --- industry pages (/for/<slug>) and "Who it's for" (/for) ---------------------------------- */
.sales .nav .links a[aria-current=page] { color: var(--lime); }
.sales .hero .eyebrow a { color: inherit; text-decoration: none; } .sales .hero .eyebrow a:hover { text-decoration: underline; }
.sales .hero h1 { font-size: clamp(2.3rem, 1.3rem + 3.6vw, 3.9rem); max-width: 17ch; letter-spacing: -1.3px; line-height: 1.03; }
.sales .hero .lead { max-width: 46ch; font-size: 1.12rem; }
.sales .hero .ctas .btn.outline .icon { width: 20px; height: 20px; }
.hero-short { padding-bottom: var(--s8); }
@media (min-width: 980px) { .hero-short { padding: var(--s8) 0; } .hero-short .wrap { grid-template-columns: minmax(0, 1fr); } }

/* try it yourself: the hero's call screen */
.try { text-align: center; }
.try .dtop { text-align: left; }
.try .dname { margin: 0; font-size: 1.35rem; }
.try .dsub { font-size: .95rem; color: var(--on-navy-2); max-width: 34ch; margin: 6px auto var(--s5); line-height: 1.5; }
.try .btn + .btn { margin-top: var(--s3); }
.try-own { margin-top: var(--s4); font-size: .82rem; color: var(--on-navy-3); line-height: 1.5; }
.try .orb { margin: var(--s5) auto var(--s4); }

/* pains */
.pains-band { background: var(--surface); border-bottom: 1px solid var(--line); }
.pains-band .sec-head { margin-bottom: var(--s5); }
.pains { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s3); }
@media (min-width: 820px) { .pains { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s4); } }
.pain { display: flex; gap: var(--s4); align-items: flex-start; padding: var(--s5); border-radius: var(--r-lg); background: var(--bg); border: 1px solid var(--line); }
.pain .icon { flex: none; width: 40px; height: 40px; padding: 10px; border-radius: 12px; background: var(--bg-2); color: var(--text); box-sizing: border-box; }
.pain p { color: var(--text-2); font-size: 1rem; line-height: 1.5; }

/* the two example calls */
.calls-band { background: var(--bg-2); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.calls { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s5); align-items: start; }
@media (min-width: 900px) { .calls { grid-template-columns: repeat(2, minmax(0, 1fr)); } .call.today { position: sticky; top: 88px; } }
.call { border-radius: var(--r-xl); padding: var(--s5); border: 1px solid var(--line); background: var(--surface); box-shadow: var(--shadow-1); min-width: 0; }
@media (min-width: 720px) { .call { padding: var(--s6); } }
.call.ai { background: var(--navy); border-color: var(--navy-line); box-shadow: 0 30px 80px -40px rgba(11, 21, 48, .6); }
.call-head { margin-bottom: var(--s4); }
.call-tag { display: inline-flex; align-items: center; height: 28px; padding: 0 12px; border-radius: var(--r-pill); font-size: .74rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase;
  background: var(--bg-2); color: var(--text-2); }
.call.ai .call-tag { background: var(--lime); color: var(--navy); }
.call h3 { margin-top: var(--s3); font-size: 1.3rem; letter-spacing: -.5px; line-height: 1.2; }
.call.ai h3 { color: var(--on-navy); }
.call-label { margin-top: var(--s2); font-size: .74rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); line-height: 1.5; }
.call.ai .call-label { color: var(--on-navy-2); }
.call .convo { max-width: none; margin-top: var(--s4); }
.call .convo .b { animation: none; max-width: 88%; }
.call .convo .b.staff { align-self: flex-start; background: var(--bg-2); color: var(--text); border: 1px solid var(--line); border-bottom-left-radius: 6px; }
.call .convo .b.ai { background: var(--navy-2); }
.call.today .convo .b.caller { border: 1px solid color-mix(in srgb, var(--navy) 10%, transparent); }

/* the players: one button, a bar you can tap, the time */
.player { display: flex; align-items: center; gap: var(--s3); padding: 10px 14px 10px 10px; border-radius: var(--r-pill); background: var(--bg); border: 1px solid var(--line); }
.call.ai .player { background: var(--navy-2); border-color: var(--navy-line); }
.player audio { width: 100%; height: 40px; }
.player .play { flex: none; width: 44px; height: 44px; border-radius: 50%; border: 0; display: grid; place-items: center; cursor: pointer; background: var(--navy); color: var(--lime); transition: transform var(--fast) var(--ease), background var(--fast); }
.player .play:hover { transform: scale(1.05); }
.call.ai .player .play { background: var(--lime); color: var(--navy); }
.player .play .icon { width: 18px; height: 18px; fill: currentColor; stroke: none; }
.player .play .i-play { margin-left: 2px; }
.player .i-pause, .player.playing .i-play { display: none; }
.player.playing .i-pause { display: block; }
.player .track { flex: 1; min-width: 40px; height: 24px; display: flex; align-items: center; cursor: pointer; position: relative; }
.player .track::before { content: ""; position: absolute; left: 0; right: 0; height: 6px; border-radius: 3px; background: var(--line-strong); }
.call.ai .player .track::before { background: var(--navy-line); }
.player .track i { position: relative; display: block; height: 6px; width: 0; border-radius: 3px; background: var(--navy); }
.call.ai .player .track i { background: var(--lime); }
.player .time { flex: none; font-size: .85rem; font-weight: 800; font-variant-numeric: tabular-nums; color: var(--text-2); min-width: 2.6em; text-align: right; }
.call.ai .player .time { color: var(--on-navy-2); }
@media (prefers-color-scheme: dark) { .player .play { background: var(--lime); color: var(--navy); } .player .track i { background: var(--lime); } }

/* plans: the recommended one says why */
.price-card.rec { position: relative; }
.rec-tag { position: absolute; top: -14px; left: var(--s6); display: inline-flex; white-space: nowrap; align-items: center; min-height: 26px; padding: 4px 10px; border-radius: 8px; background: var(--lime); color: var(--navy);
  font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; line-height: 1.3; }
.rec-why { font-size: .92rem; color: var(--text-2); padding: var(--s3) var(--s4); border-radius: var(--r); background: var(--accent-soft); margin-bottom: var(--s4); }
@media (max-width: 819px) { .price-card.rec { order: -1; } }
.plan-notes { max-width: 760px; margin: var(--s6) auto 0; text-align: center; display: flex; flex-direction: column; gap: var(--s2); align-items: center; }
.plan-notes p { display: inline-flex; gap: 10px; align-items: flex-start; color: var(--text-2); text-align: left; }
.plan-notes p.muted { color: var(--muted); font-size: .92rem; }
.plan-notes .icon { margin-top: 2px; color: var(--text); }

/* bookings and care */
.fit { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s4); }
@media (min-width: 900px) { .fit { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.fit-card { display: flex; gap: var(--s4); align-items: flex-start; padding: var(--s5); border-radius: var(--r-lg); background: var(--surface); border: 1px solid var(--line); }
@media (min-width: 720px) { .fit-card { padding: var(--s6); } }
.fit-card .fi { flex: none; width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--navy); color: var(--lime); }
.fit-card h3 { font-size: 1.12rem; letter-spacing: -.3px; } .fit-card p { margin-top: 6px; color: var(--text-2); }

/* other industries */
.also { padding: 0 0 var(--s7); }
.also .wrap { display: flex; flex-wrap: wrap; align-items: center; gap: 0 var(--s4); }
.also .label { color: var(--muted); font-weight: 800; font-size: .74rem; letter-spacing: .12em; text-transform: uppercase; margin-right: var(--s2); }
.also .wrap { gap: var(--s2); }
.also a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border-radius: var(--r-pill); border: 1px solid var(--line-strong);
  background: var(--surface); color: var(--text-2); font-weight: 600; font-size: .9rem; text-decoration: none; }
.also a:hover { color: var(--text); border-color: var(--text); }
@media (max-width: 639px) {  /* phones: icon beside the words, so six jobs don't fill six screens */
  .sales .features .feature { display: grid; grid-template-columns: 44px minmax(0, 1fr); column-gap: var(--s4); padding: var(--s4) var(--s5) var(--s5); }
  .sales .features .feature .fi { grid-row: span 2; margin: 4px 0 0; }
}

/* "Who it's for" cards */
.for-card { color: inherit; text-decoration: none; transition: border-color var(--fast), box-shadow var(--fast), transform var(--fast) var(--ease); }
.for-card:hover { border-color: var(--line-strong); box-shadow: var(--shadow-2); transform: translateY(-2px); }
.for-card h2 { font-size: 1.15rem; letter-spacing: -.3px; }
.for-card p { color: var(--text-2); font-size: 1rem; line-height: 1.5; }
.for-card .more { margin-top: auto; padding-top: var(--s2); display: inline-flex; align-items: center; gap: 6px; font-weight: 800; color: var(--text); font-size: .94rem; }
.for-card:hover .more .icon { transform: translateX(2px); }
.for-card .more .icon { transition: transform var(--fast) var(--ease); }
.for-card.other { background: var(--bg-2); }
@media (prefers-reduced-motion: reduce) { .for-card, .for-card:hover { transform: none; } }
@media (max-width: 639px) { .also .label { width: 100%; margin: 0 0 2px; } }
.rec-why b { color: var(--text); font-weight: 800; }

/* the search phrase above an industry page's headline, inside its h1 */
.hero h1 .kicker { display: flex; width: fit-content; font-size: .74rem; line-height: 1.4; letter-spacing: .12em; margin-bottom: var(--s4); max-width: none; }

/* the pillar page and the guides (/ai-receptionist, /guides, /guides/<slug>) */
.guide-hero h1 { font-size: clamp(2.1rem, 1.3rem + 3vw, 3.3rem); max-width: 20ch; }
.guide-hero .lead { max-width: 60ch; }
.crumbs ol { list-style: none; margin: 0 0 var(--s4); padding: 0; display: flex; flex-wrap: wrap; gap: 4px 0; font-size: .86rem; color: var(--on-navy-2); }
.crumbs li + li::before { content: "/"; margin: 0 8px; opacity: .6; }
.crumbs a { color: var(--on-navy-2); text-decoration: none; font-weight: 600; } .crumbs a:hover { color: var(--on-navy); text-decoration: underline; }
.crumbs [aria-current] { color: var(--on-navy); }
.updated { margin-top: var(--s4); color: var(--on-navy-2); font-size: .88rem; }
.guide-main .wrap { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s6); }
@media (min-width: 1040px) { .guide-main .wrap { grid-template-columns: 240px minmax(0, 760px); justify-content: center; gap: var(--s8); } }
.toc { align-self: start; padding: var(--s4) var(--s5); border-radius: var(--r-lg); background: var(--surface); border: 1px solid var(--line); }
@media (min-width: 1040px) { .toc { position: sticky; top: 92px; } }
.toc .label { font-size: .74rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); margin: 0 0 var(--s2); }
.toc ol { margin: 0; padding-left: 1.2em; display: flex; flex-direction: column; gap: 6px; font-size: .92rem; }
.toc a { color: var(--text-2); text-decoration: none; font-weight: 600; } .toc a:hover { color: var(--text); text-decoration: underline; }
.prose { font-size: 1.06rem; line-height: 1.7; color: var(--text-2); min-width: 0; }
.prose > section { padding: 0; } .prose > section + section { margin-top: var(--s7); }
.prose h2 { font-size: clamp(1.4rem, 1.1rem + 1vw, 1.8rem); letter-spacing: -.6px; color: var(--text); margin-bottom: var(--s3); scroll-margin-top: 88px; }
.prose p, .prose ul, .prose ol { margin: 0 0 var(--s4); } .prose ul, .prose ol { padding-left: 1.3em; } .prose li + li { margin-top: 6px; }
.prose b { color: var(--text); }
.prose a:not(.guide-card) { color: var(--text); font-weight: 700; text-decoration: underline; text-decoration-color: color-mix(in srgb, var(--text) 35%, transparent); }
.prose a:not(.guide-card):hover { text-decoration-color: var(--text); }
.prose code { font-size: .95em; padding: 1px 6px; border-radius: 6px; background: var(--bg-2); color: var(--text); }
.prose table { width: 100%; border-collapse: collapse; margin: 0 0 var(--s4); font-size: .96rem; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; }
.prose th, .prose td { text-align: left; vertical-align: top; padding: 10px 12px; border-bottom: 1px solid var(--line); }
.prose thead th { background: var(--bg-2); color: var(--text); font-size: .86rem; }
.prose tbody tr:last-child > * { border-bottom: 0; }
.prose tbody th { color: var(--text); }
.prose > section:has(table) { overflow-x: auto; }
.guide-cards { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s3); margin: 0 0 var(--s4); }
@media (min-width: 640px) { .guide-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.guide-related .guide-cards { margin: 0; }
@media (min-width: 1040px) { .guide-related .guide-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.guide-card { display: flex; gap: var(--s3); align-items: flex-start; padding: var(--s4); border-radius: var(--r-lg); background: var(--surface); border: 1px solid var(--line);
  color: inherit; text-decoration: none; line-height: 1.45; transition: border-color var(--fast), box-shadow var(--fast), transform var(--fast) var(--ease); }
.guide-card:hover { border-color: var(--line-strong); box-shadow: var(--shadow-2); transform: translateY(-2px); }
.guide-card .ti { flex: none; width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--navy); color: var(--lime); }
.guide-card b { display: block; color: var(--text); font-size: 1rem; }
.guide-card b + span { display: block; margin-top: 2px; color: var(--text-2); font-size: .92rem; font-weight: 400; }
@media (prefers-reduced-motion: reduce) { .guide-card, .guide-card:hover { transform: none; } }

/* Enterprise on the pricing section: sliders, the price live from /api/plans' table */
.ent-wrap { max-width: 980px; margin: var(--s5) auto 0; }
.ent-card { max-width: none; border: 2px solid var(--text); background: linear-gradient(180deg, color-mix(in srgb, var(--lime) 16%, var(--surface)), var(--surface) 160px); }
.ent-head { display: flex; justify-content: space-between; align-items: center; gap: var(--s3); flex-wrap: wrap; }
.ent-tag, .ent-save { display: inline-flex; align-items: center; height: 28px; padding: 0 12px; border-radius: 999px; font-size: .85rem; font-weight: 700; }
.ent-tag { background: var(--navy, #0B1530); color: var(--lime, #C6F432); }
.ent-save { align-self: flex-start; background: var(--lime, #C6F432); color: var(--navy, #0B1530); }
.ent-row { display: flex; justify-content: space-between; align-items: baseline; gap: var(--s2); font-weight: 700; }
.ent-value { font-variant-numeric: tabular-nums; }
.ent-card input[type=range] { width: 100%; height: 36px; accent-color: var(--primary); }
.ent-compare { color: var(--muted); margin: 0; }
.ent-compare[hidden], .ent-save[hidden] { display: none; }
.ent-detail { font-size: .92rem; margin: 0; }

/* Monthly / Yearly on the pricing section */
.interval-toggle { display: flex; width: max-content; max-width: 100%; margin: 0 auto var(--s5); padding: 4px; border-radius: 999px; background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-1, none); }
.interval-toggle[hidden] { display: none; }
.interval-toggle button { min-height: 44px; padding: 0 20px; border: 0; border-radius: 999px; background: none; color: var(--text-2); font: inherit; font-weight: 700; cursor: pointer; }
.interval-toggle button[aria-pressed=true] { background: var(--text); color: var(--surface); }
.interval-toggle button span { font-weight: 600; font-size: .85em; opacity: .85; }
.price-card .per-month { margin: -4px 0 0; }
.price-card .per-month[hidden] { display: none; }

/* --- one design language for the inner pages ---------------------------------------------------
   /for, /for/<slug>, the guides, /developers and the legal pages (body .sales or .legal-page) look
   like the home page (home.css): the same width, type, pill buttons, eyebrows and navy hero with
   two slow lime glows. Mobile first. */
.sales, .legal-page { --card-r: 18px; font-size: 17px; }
@media (min-width: 1024px) { .sales, .legal-page { font-size: 18px; } }
:is(.sales, .legal-page) .wrap { max-width: 1180px; padding: 0 16px; }
@media (min-width: 640px) { :is(.sales, .legal-page) .wrap { padding: 0 24px; } }
@media (min-width: 1024px) { :is(.sales, .legal-page) .wrap { padding: 0 32px; } }
.sales:not(.guide-page) main > section { padding: 88px 0; }
@media (min-width: 1024px) { .sales:not(.guide-page) main > section { padding: 128px 0; } }
.sales main > section[style*="padding-top:0"] { padding-top: 0; }
:is(.sales, .legal-page) .icon { stroke-width: 1.75; }
/* the focus ring: --focus (navy on light, lime in dark mode) on light surfaces, lime on navy ones,
   navy on lime. :where() keeps every rule at the same weight, so the last that fits wins. */
:where(.sales, .legal-page, .home) :focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
:where(.nav, .on-navy, .top-hero, .sales .hero, .legal-hero, .band, .final, .closing, .price-band, .scan-sec, .scan-card,
  .cmp-out, .co-bar, .co-bubble, .co-card, .cmp-teaser, .box.navy, .tcard, .marquee, .type-row, footer, .site-foot) :focus-visible { outline-color: var(--lime); }
:where(.report, .rp-error) :focus-visible { outline-color: var(--focus); }
:where(.report .plan) :focus-visible { outline-color: var(--lime); }
:where(.tband, .box.lime, .tile.lime, .tcard.light) :focus-visible { outline-color: var(--navy); }
:where(.tband .tcard:not(.light)) :focus-visible { outline-color: var(--lime); }
:is(.sales, .legal-page) main p { line-height: 1.6; }
:is(.sales, .legal-page) .eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--lime-deep); }
:is(.sales, .legal-page) .eyebrow::before { content: ""; width: 16px; height: 2px; background: currentColor; flex: none; }
:is(.sales, .legal-page) .on-navy .eyebrow, .sales .band .eyebrow { color: var(--lime); }
@media (prefers-color-scheme: dark) { :is(.sales, .legal-page) .eyebrow { color: var(--lime); } }
.sales .sec-head { max-width: 720px; margin-bottom: 40px; }
.sales .sec-head h2 { margin-top: 14px; font-size: clamp(2.1rem, 1.5rem + 2.6vw, 3.4rem); font-weight: 800; letter-spacing: -.03em; line-height: 1.08; }
.sales .sec-head p { color: var(--text-2); font-size: 1em; max-width: 58ch; }
.sales .band .sec-head p { color: var(--on-navy-2); }
:is(.sales, .legal-page) .btn { min-height: 52px; border-radius: 999px; font-weight: 700; padding: 0 24px; gap: 10px; transition: transform .25s var(--ease-s), background-color .2s, border-color .2s; }
:is(.sales, .legal-page) .btn.sm { min-height: 44px; padding: 0 18px; }
:is(.sales, .legal-page) .btn.lg { min-height: 56px; }
:is(.sales, .legal-page) .btn .icon { transition: transform .25s var(--ease-s); }
:is(.sales, .legal-page) .btn:hover .icon { transform: translateX(3px); }
:is(.sales, .legal-page) .btn.cta:hover { transform: translateY(-1px); }
.sales .feature, .sales .type, .sales .pain, .sales .fit-card, .sales .step, .sales .price-card, .sales .guide-card, .sales .toc, .sales .call { border-radius: var(--card-r); }
@media (min-width: 1024px) { .sales .feature, .sales .type, .sales .fit-card { padding: 32px; } }

/* the navy hero of every inner page: the home page's gradient, two lime glows (data-par moves
   them a little slower than the page) and a small uppercase eyebrow with a lime dot */
:is(.sales .hero, .legal-hero) { isolation: isolate; background: radial-gradient(120% 80% at 50% 0%, #12204A 0%, var(--navy) 55%, #070E22 100%); }
:is(.sales .hero, .legal-hero)::before { display: none; }
.sales .hero { padding: 40px 0 88px; }
@media (min-width: 1024px) { .sales .hero { padding: 96px 0 128px; } .sales .hero-short { padding: 88px 0 104px; } }
.sales .hero h1 { font-weight: 800; letter-spacing: -.035em; line-height: 1.04; }
.sales .hero .lead { color: var(--on-navy-2); }
:is(.sales, .legal-page) .eyebrow.dot { gap: 10px; padding: 8px 14px; border-radius: 999px; background: rgba(198, 244, 50, .08); border: 1px solid rgba(198, 244, 50, .28); color: var(--lime); }
:is(.sales, .legal-page) .eyebrow.dot::before { width: 8px; height: 8px; border-radius: 50%; background: var(--lime); }
.sales .hero h1 .kicker.dot { margin-bottom: 22px; letter-spacing: .16em; font-size: 12px; border-radius: 16px; line-height: 1.5; max-width: 100%; }
/* phones: the header shows only the mark, the language menu, Sign in and Get started (as the home page) */
@media (max-width: 479px) { :is(.sales, .legal-page) .nav .brand .name { display: none; } :is(.sales, .legal-page) .nav .wrap { gap: 8px; } }
.sales .hero .trust-row .icon { stroke-width: 2.2; }
.sales .device { border-radius: 24px; }
.sales .final { border-radius: 24px; background: radial-gradient(60% 70% at 50% 0%, rgba(198, 244, 50, .12) 0%, transparent 70%), radial-gradient(120% 90% at 50% 0%, #12204A 0%, var(--navy) 60%, #070E22 100%); }
.sales .final h2 { font-size: clamp(2.1rem, 1.5rem + 2.6vw, 3.4rem); letter-spacing: -.03em; line-height: 1.08; }
.sales .faq summary { font-weight: 700; }

/* the hero's two lime glows (the home page and every inner page) */
.glow { position: absolute; z-index: -1; width: 600px; height: 600px; border-radius: 50%; pointer-events: none; opacity: .18;
  background: radial-gradient(circle, var(--lime) 0%, rgba(198, 244, 50, .35) 30%, transparent 68%); }
.glow.g1 { right: -260px; top: -220px; }
.glow.g2 { left: -300px; top: 420px; }
.js .glow.g1 { animation: drift-a 24s ease-in-out infinite alternate; }
.js .glow.g2 { animation: drift-b 24s ease-in-out -8s infinite alternate; }
@keyframes drift-a { to { transform: translate3d(-80px, 60px, 0) scale(1.08); } }
@keyframes drift-b { to { transform: translate3d(90px, -50px, 0) scale(1.1); } }
.still .glow { animation: none !important; translate: none !important; }
@media (prefers-reduced-motion: reduce) { .glow { animation: none !important; } }

/* --- motion (web/motion.js, every public page) ------------------------------------------------
   Only under the "js" class (sales_pages.MOTION_BOOT), so without scripts everything shows.
   Only transform and opacity move; with reduced motion nothing does. */
:root { --ease-s: cubic-bezier(.2, .8, .2, 1); }
.progress { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 60; background: var(--lime); transform-origin: 0 50%; transform: scaleX(0); pointer-events: none; }
.js [data-reveal] { opacity: 0; transform: translate3d(0, 24px, 0); transition: opacity .7s var(--ease-s), transform .7s var(--ease-s); transition-delay: calc(var(--i, 0) * 90ms); }
.js [data-reveal="scale"] { transform: scale(.96); }
.js [data-reveal].in { opacity: 1; transform: none; }
[data-split] .w { display: inline-block; }
.js [data-split] .w { opacity: 0; transform: translate3d(0, .45em, 0); transition: opacity .6s var(--ease-s), transform .7s var(--ease-s); transition-delay: calc(var(--w, 0) * 45ms); }
.js [data-split].in .w { opacity: 1; transform: none; }
/* in the first screen (data-hero) nothing starts hidden: it paints at once and only rises into place */
.js [data-hero] [data-reveal], .js [data-hero] [data-split] .w { opacity: 1; }
[data-count] { display: inline-block; font-variant-numeric: tabular-nums; }
.still [data-reveal], .still [data-split] .w { opacity: 1 !important; transform: none !important; transition: none !important; }
@media (prefers-reduced-motion: reduce) {
  .js [data-reveal], .js [data-split] .w { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* printed or saved as PDF: everything shown, nothing waiting to scroll into view */
@media print {
  .js [data-reveal], .js [data-split] .w, .js .top-hero .hero-h1 .ln, .js .phone.armed .msg, .js .phone.armed .booked,
  .js .story.armed .at, .js .uline::after { opacity: 1 !important; transform: none !important; transition: none !important; }
  .js .cmp:not(.in) .bt i, .bars.grow .bt i { transform: scaleX(var(--k, 0)) !important; }
  .progress, .glow, .rings, .marquee, .hc-launch, .hc-panel { display: none !important; }
}
