/* Advisy site kit (ACR-1587). The sub-pages are built only from these patterns and the homepage's own classes.
   Every size, weight, colour and space here is one the homepage already uses (kit/allowed.json is the measured list):
     page title      .marketing-heading in the hero (hero-headline.css)
     section heading .marketing-heading (64px / 36px on a phone)
     card heading    1.625rem / 1.5rem under 900px, 600, line 1.2, tracking -.02em   (= .home-points h3)
     statement       clamp(1.375rem,2.2vw,1.875rem), 600, line 1.25, tracking -.02em  (= the demo's closing line)
     question        1.125rem / 1rem under 640px, 600, line 1.4, tracking -.01em      (= FAQ question)
     body            1rem, line 1.7, muted                                            (= .home-points p)
     label           .8125rem, 600, line 1.4, blue                                    (= step number)
   Colours: ink #202d32, muted #606b70, action #14638f, blue #2180b8, line #d6e2ea, paper #fafbfc, white.
   Spacing: sections use --site-section-space (96px; 64px on a phone), content sits in .wrap (1200px). */

/* ---------- Sections: the homepage rhythm, white and paper alternating ---------- */
body main.homepage>.k-section{padding-block:var(--site-section-space);background:#fff}
body main.homepage>.k-section.k-alt{background:#fafbfc}
body main.homepage>.home-about.k-alt{background:#fafbfc}
body main.homepage .k-section .marketing-heading{max-width:1100px}
body main.homepage .k-left :is(.marketing-heading,.marketing-subheading){text-align:left;margin-left:0}
body main.homepage .k-left .home-links{justify-content:flex-start}

/* Sub-page hero: the homepage hero without the stage. */
body main.homepage>.nexus-hero.k-hero{padding-bottom:3.5rem}
body main.homepage>.nexus-hero.k-hero .nx-actions{justify-content:center;flex-wrap:wrap}

/* ---------- Labels, notes, actions ---------- */
.k-label{display:block;margin-bottom:1rem;font:600 .8125rem/1.4 var(--site-body);color:#14638f}
body main.homepage .k-note{max-width:62ch;margin:2.5rem auto 0;text-align:center;font:400 1rem/1.7 var(--site-body);color:var(--site-muted)}
body main.homepage .k-left .k-note{margin-left:0;text-align:left}
.k-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.75rem;margin-top:2rem}
.k-left .k-actions{justify-content:flex-start}
body main.homepage .k-actions .nx-button{min-height:48px;padding:13px 25px;font-size:.8125rem}
body main.homepage .k-actions .nx-button:not(.secondary){background:#14638f;color:#fff}
body main.homepage .k-actions .nx-button:not(.secondary):hover{background:#0f5479}
body main.homepage .k-actions .nx-button.secondary{background:#edf3f8;color:#14638f;box-shadow:none}
body main.homepage .k-actions .nx-button.secondary:hover{background:#e0edf5}

/* ---------- Point cards: .home-points in 2, 3 or 4 columns ---------- */
body main.homepage .home-points.k-2{grid-template-columns:repeat(2,minmax(0,1fr))}
body main.homepage .home-points.k-4{grid-template-columns:repeat(4,minmax(0,1fr))}
body main.homepage .home-points article>.tlink{margin-top:1.25rem}
body main.homepage .home-points article ul{margin-top:1rem;display:grid;gap:.5rem}
body main.homepage .home-points article li{position:relative;padding-left:1.25rem;font:400 1rem/1.7 var(--site-body);color:var(--site-muted)}
body main.homepage .home-points article li::before{content:"";position:absolute;left:0;top:.75em;width:.5rem;height:1px;background:#2180b8}

/* ---------- Statement: one line, said once (light, never the old dark band) ---------- */
body main.homepage .k-statement{max-width:32ch;margin:0 auto;text-align:center;font:600 clamp(1.375rem,2.2vw,1.875rem)/1.25 NexusManrope,Manrope,system-ui,sans-serif;letter-spacing:-.02em;color:var(--site-ink);text-wrap:balance}
body main.homepage .k-statement em{font-style:normal;color:#2180b8}
body main.homepage .k-statement+.k-note{margin-top:1.5rem}

/* ---------- Figures: a number and what it means ---------- */
.k-stats{display:grid;grid-template-columns:repeat(var(--k-cols,3),minmax(0,1fr));gap:2rem;margin-top:3rem}
.k-stats>div{border-top:1px solid #d6e2ea;padding-top:1.5rem}
.k-figure{display:block;font:600 clamp(1.375rem,2.2vw,1.875rem)/1.25 NexusManrope,Manrope,system-ui,sans-serif;letter-spacing:-.02em;color:var(--site-ink)}
.k-stats p{margin-top:.75rem;font:400 1rem/1.7 var(--site-body);color:var(--site-muted)}

/* ---------- Tiers: plans side by side ---------- */
.k-tiers{display:grid;grid-template-columns:repeat(var(--k-cols,3),minmax(0,1fr));gap:1.5rem;margin-top:3rem;text-align:left}
.k-tier{display:flex;flex-direction:column;padding:2rem;border:1px solid #d6e2ea;border-radius:1rem;background:#fff}
.k-alt .k-tier{background:#fff}
.k-tier.k-featured{border-color:#2180b8}
.k-tier>.k-label{margin-bottom:.75rem}
.k-tier h3{font:600 1.625rem/1.2 NexusManrope,Manrope,system-ui,sans-serif;letter-spacing:-.02em;color:var(--site-ink);text-wrap:balance}
.k-tier .k-figure{margin-top:1rem}
.k-tier p{margin-top:1rem;font:400 1rem/1.7 var(--site-body);color:var(--site-muted)}
.k-tier ul{margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid #d6e2ea;display:grid;gap:.5rem}
.k-tier li{position:relative;padding-left:1.25rem;font:400 1rem/1.7 var(--site-body);color:var(--site-muted)}
.k-tier li::before{content:"";position:absolute;left:0;top:.75em;width:.5rem;height:1px;background:#2180b8}
.k-tier .k-actions{margin-top:auto;padding-top:1.75rem;justify-content:flex-start}

/* ---------- People ---------- */
.k-people{display:grid;grid-template-columns:repeat(var(--k-cols,3),minmax(0,1fr));gap:2rem;margin-top:3rem;text-align:left}
.k-people figure{margin:0 0 1.5rem}
.k-people img{width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:1rem;background:#eef4f8}
.k-people h3{font:600 1.625rem/1.2 NexusManrope,Manrope,system-ui,sans-serif;letter-spacing:-.02em;color:var(--site-ink)}
.k-people .k-label{margin:.5rem 0 0}
.k-people p{margin-top:1rem;font:400 1rem/1.7 var(--site-body);color:var(--site-muted)}

/* ---------- Long read: essays, privacy, terms ---------- */
.k-prose{max-width:42rem;margin:0 auto;text-align:left}
.marketing-subheading+.k-prose,.marketing-heading+.k-prose{margin-top:3rem}
.k-prose h2{margin:3rem 0 1rem;font:600 1.625rem/1.2 NexusManrope,Manrope,system-ui,sans-serif;letter-spacing:-.02em;color:var(--site-ink);text-wrap:balance}
.k-prose>h2:first-child{margin-top:0}
.k-prose h3{margin:2rem 0 .75rem;font:600 1.125rem/1.4 NexusManrope,Manrope,system-ui,sans-serif;letter-spacing:-.01em;color:var(--site-ink)}
.k-prose p,.k-prose li{font:400 1rem/1.7 var(--site-body);color:var(--site-muted)}
.k-prose p+p,.k-prose ul+p,.k-prose ol+p{margin-top:1.25rem}
.k-prose ul,.k-prose ol{margin:1rem 0 0;padding-left:1.25rem;display:grid;gap:.5rem}
.k-prose ul{list-style:disc}
.k-prose ol{list-style:decimal}
.k-prose li::marker{color:#2180b8}
.k-prose a{color:#14638f;text-decoration:underline;text-underline-offset:3px}
.k-prose strong,.k-prose b{font-weight:600;color:var(--site-ink)}
.k-prose blockquote{margin:2rem 0;padding-left:1.25rem;border-left:2px solid #2180b8;font:600 1.125rem/1.4 NexusManrope,Manrope,system-ui,sans-serif;letter-spacing:-.01em;color:var(--site-ink)}
.k-prose .k-label{margin:0 0 .75rem}

/* ---------- Form ---------- */
.k-form{display:grid;gap:1.25rem;max-width:42rem;margin:3rem auto 0;text-align:left}
.k-form .k-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}
.k-field{display:grid;gap:.5rem}
.k-field>label,.k-field>legend{font:600 .8125rem/1.4 var(--site-body);color:var(--site-ink);padding:0}
.k-field :is(input,select,textarea){width:100%;min-height:48px;padding:.75rem 1rem;border:1px solid #d6e2ea;border-radius:12px;background:#fff;font:400 1rem/1.55 var(--site-body);color:var(--site-ink);transition:border-color 160ms ease-out}
.k-field textarea{min-height:9rem;resize:vertical}
.k-field :is(input,select,textarea):hover{border-color:#2180b8}
.k-field :is(input,select,textarea):focus-visible{outline:2px solid #2180b8;outline-offset:2px;border-color:#2180b8}
.k-field fieldset{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.k-choice{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;padding:0 1rem;border:1px solid #d6e2ea;border-radius:999px;background:#fff;font:400 1rem/1.55 var(--site-body);color:var(--site-ink);cursor:pointer}
.k-choice:has(input:checked){border-color:#2180b8;background:#edf3f8}
.k-choice input{width:auto;min-height:0;accent-color:#14638f}
.k-form .k-note{margin:0;text-align:left}
.k-form .k-actions{justify-content:flex-start;margin-top:.5rem}

/* ---------- Document card (the Nexus output card, inside .hd so it shares the Slack panel's look) ---------- */
.k-docs{display:grid;grid-template-columns:repeat(var(--k-cols,2),minmax(0,1fr));gap:1.5rem;margin-top:3rem;text-align:left}
.home-steps+.k-docs{margin-top:2.5rem}
/* line-height 1.5 = what the homepage panel inherits from its .wf section */
.hd.k-doc{text-align:left;line-height:1.5}
.k-doc .hd-card{height:100%}
.k-doc .hd-card-head p{margin-top:3px}
.k-fields{display:grid}
.k-fields>div{display:grid;gap:2px;padding:12px 0;border-top:1px solid #e7edf1}
.k-fields>div:first-child{border-top:0;padding-top:0}
.k-fields dt{font-size:11px;font-weight:600;line-height:1.5;color:#607482}
.k-fields dd{margin:0;font-size:13px;line-height:1.65;color:#202d32}
.hd .k-card-p{font-size:13px;line-height:1.65;color:#596d79}
.hd .k-card-p+.k-card-p{margin-top:8px}

/* ---------- Slack panel sections: the homepage demo's section, reused ---------- */
body main.homepage .home-demo .hd-label.k-centre{justify-content:center}
body main.homepage .home-demo .k-panel+.hd-label{margin-top:4rem}

/* Column counts come from data-cols on the grid (no inline styles in pages). */
[data-cols="1"]{--k-cols:1}[data-cols="2"]{--k-cols:2}[data-cols="3"]{--k-cols:3}[data-cols="4"]{--k-cols:4}
/* A panel with no output card: the conversation alone, at a reading width. */
.hd-grid.k-single{grid-template-columns:minmax(0,46rem);justify-content:center}

/* ---------- Narrow screens ---------- */
@media(max-width:1100px){
 .k-tiers,.k-people{grid-template-columns:repeat(min(var(--k-cols,3),2),minmax(0,1fr))}
 body main.homepage .home-points.k-4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
 .k-tier h3,.k-people h3,.k-prose h2{font-size:1.5rem}
 .k-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
 .k-docs{grid-template-columns:1fr}
 body main.homepage .k-section .marketing-heading,body main.homepage .k-section .marketing-subheading{text-align:left;margin-left:0}
 body main.homepage .k-statement,body main.homepage .k-note{text-align:left;margin-left:0}
 .k-actions{justify-content:flex-start}
}
@media(max-width:640px){
 body main.homepage>.nexus-hero.k-hero{padding-bottom:2.5rem}
 .k-tiers,.k-people,.k-stats{grid-template-columns:1fr}
 body main.homepage .home-points.k-2,body main.homepage .home-points.k-4{grid-template-columns:1fr}
 .k-tier{padding:1.5rem}
 .k-form .k-row{grid-template-columns:1fr}
 .k-prose h3{font-size:1rem}
 .k-prose blockquote{font-size:1rem}
 body main.homepage .home-demo .k-panel+.hd-label{margin-top:3rem}
}
@media(prefers-reduced-motion:reduce){.k-field :is(input,select,textarea){transition:none}}
@media(forced-colors:active){.k-tier,.k-field :is(input,select,textarea){border-color:CanvasText}}

/* 13 Oct lead fixes: card links in the homepage link colour; legal/essay headings left-aligned; bold in long reads; card date line and linked titles. */
body main.homepage .home-points article>.tlink{color:#14638f}
body main.homepage .k-prose :is(h2,h3){text-align:left;margin-inline:0}
body main.homepage .k-prose strong{font-weight:600;color:var(--site-ink)}
body main.homepage .home-points article>.k-meta{font:600 .8125rem/1.4 var(--site-body);color:#14638f;margin-top:.5rem}
body main.homepage .home-points h3>a{color:inherit;text-decoration:none}
body main.homepage .home-points h3>a:hover{color:#14638f}
body main.homepage .home-points.k-5{display:flex;flex-wrap:wrap;justify-content:center}
body main.homepage .home-points.k-5>article{flex:0 1 calc((100% - 4rem)/3);min-width:0}
@media(max-width:640px){body main.homepage .home-points.k-5>article{flex-basis:100%}}
body main.homepage :is(.home-about,.home-points) p a{color:#14638f;text-decoration:underline;text-underline-offset:3px}
/* 13 Oct lead fix (from helper C): form buttons drop the browser border; buttons in a row use the homepage's phone size. */
.k-actions button.nx-button{border:0;cursor:pointer}
@media(max-width:640px){body main.homepage .k-actions .nx-button{font-size:.75rem}}

/* 13 Oct: slim header and footer for landing pages (ad pages, event invitations). Same fonts and colours as the site header. */
.top.k-slim .wrap{grid-template-columns:auto 1fr auto!important}
.top.k-slim nav{justify-self:center}
.top.k-slim .cta{display:inline-flex!important}
.k-slim-brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--site-ink)}
.k-slim-word{font:600 1.25rem/1 NexusManrope,Manrope,system-ui,sans-serif;letter-spacing:-.02em}
.k-slim-word small{font:600 .75rem/1 var(--site-body);letter-spacing:0;color:var(--site-muted);margin-left:2px}
.k-slim-foot{border-top:1px solid #d6e2ea;padding:28px 0}
.k-slim-foot .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font:400 .8125rem/1.5 var(--site-body);color:#526b7e}
.k-slim-foot a{color:#526b7e;text-decoration:underline;text-underline-offset:3px}
@media(max-width:820px){.top.k-slim nav{display:none}.top.k-slim .wrap{grid-template-columns:1fr auto!important}}
/* Slim header on a phone (from helper J, for every landing page): the brand stays on one line; the button drops its arrow
   circle and may wrap, so a long label fits beside the brand. */
.k-slim-word{white-space:nowrap}
@media(max-width:640px){.top.k-slim .cta i{display:none}.top.k-slim .cta{white-space:normal;text-align:center;text-wrap:balance;padding:13px 19px;max-width:10rem}}
@media(max-width:380px){.top.k-slim .wrap{gap:8px}.top.k-slim .cta{padding:13px 12px;max-width:9.5rem}}
@media(max-width:340px){.top.k-slim .cta{max-width:6.5rem}}
/* Fine print: a page's small print in the footer, under the copyright line (kit.page(fine=...)). Footer type and colours only. */
body footer .k-fine{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #d6e2ea;max-width:80ch;color:#526b7e}
body footer .k-fine p,body footer .k-fine li{font:400 12px/18px var(--site-body);color:#526b7e}
body footer .k-fine p+p,body footer .k-fine ul+p,body footer .k-fine p+ul{margin-top:.75rem}
body footer .k-fine ul{list-style:disc;padding-left:1.1rem;margin:0}
body footer .k-fine li+li{margin-top:.25rem}
body footer .k-fine strong{font-weight:600;color:#526b7e}
/* Portraits at the top of a point card (Team page, 13 Oct). Same corner and square crop as .k-people. */
body main.homepage .home-points article .k-face{margin:0 0 1.5rem}
body main.homepage .home-points article .k-face img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:1rem}

/* Consistency review (13 Oct): when cards open a section (no heading above them), the gap the heading needed goes, so the section keeps its standard 96px / 64px inset. */
body main.homepage .k-section>.wrap>.home-points:first-child{margin-top:0}

/* ---------- Statement panel: k-say (Nexus, About; 13 Oct): navy with James's line drawing, the Pricing Foundation card's blue. Allowed colours and type only. */
.k-say{position:relative;isolation:isolate;overflow:hidden;display:grid;place-items:center;min-height:480px;padding:88px 48px;border-radius:24px;
  background:radial-gradient(ellipse 110% 30% at 10% 0%,#14638f,#173249 100%);box-shadow:0 16px 40px -20px #2180b8;text-align:center}
.k-say-art{position:absolute;inset:50% auto auto 50%;width:850px;height:595px;transform:translate(-50%,-50%);pointer-events:none;fill:none;
  stroke:#35b9e4;stroke-width:1.2;opacity:.24;z-index:0}
.k-say-fixed>circle:not(:first-child),.k-say-dot{fill:#35b9e4;stroke:none}
.k-say-text{position:relative;z-index:1;margin:0;color:#ffffff;font:600 48px/52.8px NexusManrope,Manrope,system-ui,sans-serif;letter-spacing:-1.2px;text-wrap:balance}
.k-say-text span{display:block}
.k-say-resolution{position:relative;z-index:1;margin:28px 0 0;color:#dbeaf4;font:600 30px/37.5px NexusManrope,Manrope,system-ui,sans-serif;letter-spacing:-.6px;text-wrap:balance}
@media (max-width:600px){
  .k-say{min-height:380px;padding:64px 24px}
  .k-say-text{font-size:30px;line-height:34.5px;letter-spacing:-.75px}
  .k-say-resolution{margin-top:20px;font-size:22px;line-height:27.5px;letter-spacing:-.44px}
}
/* The statement uses the section heading size (48px / 30px) so the page title stays the largest type; the resolution line is pale
   blue as on the pricing Foundation card, cyan stays on the drawing's lines and dots. */

/* ---------- Premium pass (13 Oct ~21:30 UTC, James: "do a passover using the apple-design skill to see where we can make things look and feel more premium") ---------- */
/* Demo panels: before Nexus's card arrives, the output column shows the shape of the card coming (a header bar and three lines), not a sentence. */
body main.homepage .hd-output::before{content:"";background:
  linear-gradient(#d6e2ea,#d6e2ea) 24px 28px/42% 12px no-repeat,
  linear-gradient(#edf3f8,#edf3f8) 24px 64px/calc(100% - 48px) 8px no-repeat,
  linear-gradient(#edf3f8,#edf3f8) 24px 84px/calc(100% - 96px) 8px no-repeat,
  linear-gradient(#edf3f8,#edf3f8) 24px 104px/calc(100% - 72px) 8px no-repeat,
  #fafbfc;box-shadow:inset 0 0 0 1px #edf3f8}
/* Page-title buttons on a phone: one even row (or two equal halves) instead of two different widths. */
@media(max-width:640px){
  body main.homepage>.nexus-hero.k-hero .nx-actions{width:100%;max-width:358px;margin-inline:auto}
  body main.homepage>.nexus-hero.k-hero .nx-actions>.nx-button{flex:1 1 140px;justify-content:center}
}
/* About: Decide. Build. Run. Train. Answer for it. read as one connected strip, not five half-empty cards. */
body main.homepage.about-page #accountability .home-points.k-5{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;margin-top:3rem;border:1px solid #d6e2ea;border-radius:24px;background:#ffffff;box-shadow:0 16px 40px -28px #2180b8;overflow:hidden}
body main.homepage.about-page #accountability .home-points.k-5>article{flex:none;min-width:0;margin:0;padding:40px 16px;border:0;border-left:1px solid #d6e2ea;border-radius:0;background:none;box-shadow:none;transform:none;text-align:center}
body main.homepage.about-page #accountability .home-points.k-5>article:first-child{border-left:0}
body main.homepage.about-page #accountability .home-points.k-5>article::before,body main.homepage.about-page #accountability .home-points.k-5>article::after{display:none}
@media(max-width:640px){
  body main.homepage.about-page #accountability .home-points.k-5{grid-template-columns:minmax(0,1fr)}
  body main.homepage.about-page #accountability .home-points.k-5>article{padding:20px 24px;border-left:0;border-top:1px solid #d6e2ea;text-align:left}
  body main.homepage.about-page #accountability .home-points.k-5>article:first-child{border-top:0}
}
/* Contact: the form sits on the pricing cards' surface. */
body main.homepage.contact-page #contact-form .k-form{max-width:46rem;padding:40px;border:1px solid #d6e2ea;border-radius:24px;background:#ffffff;box-shadow:0 16px 40px -28px #2180b8}
body main.homepage.contact-page #contact-form>.wrap>.k-prose{max-width:46rem;margin:2rem auto 0}
/* The form's status line is empty until something is sent, so it takes no room in the card until then. */
body main.homepage.contact-page #contact-form .k-form>.k-prose:has(>[hidden]:only-child){display:none}
@media(max-width:640px){body main.homepage.contact-page #contact-form .k-form{padding:24px}}
/* Insights: the whole essay card is the link, and it answers the pointer (lifts on hover, presses on click). */
body main.homepage.insights-page #articles .home-points>article{position:relative;transition:transform .2s cubic-bezier(.2,.9,.3,1),box-shadow .2s cubic-bezier(.2,.9,.3,1)}
body main.homepage.insights-page #articles .home-points h3>a::after{content:"";position:absolute;inset:0;border-radius:inherit}
body main.homepage.insights-page #articles .home-points>article .tlink{position:relative;z-index:1}
body main.homepage.insights-page #articles .home-points>article:hover{transform:translateY(-2px);box-shadow:0 20px 40px -24px #2180b8}
body main.homepage.insights-page #articles .home-points>article:active{transform:scale(.99);transition-duration:.12s}
@media(prefers-reduced-motion:reduce){body main.homepage.insights-page #articles .home-points>article{transition:none}body main.homepage.insights-page #articles .home-points>article:hover,body main.homepage.insights-page #articles .home-points>article:active{transform:none}}

/* ---------- Card styles (14 Oct ~15:00 UTC, James: "i dont think every one of these needs to be made as animations. Just more
   unique that whats currently here"). Same words; one form per kind of content, palette and type from the homepage only.
   flow = a sequence on one line; check = things to bring; pair = two panels joined; icons = cards led by an icon tile; tiles = cards led by a small still picture. kit.points(style=...). ---------- */
body main.homepage .home-points :is(.k-ico,.k-chip,.k-join) svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
body main.homepage .home-points .k-ico{display:grid;place-items:center;width:48px;height:48px;margin-bottom:1.5rem;border-radius:14px;background:#fff;color:#14638f;box-shadow:inset 0 0 0 1px #d6e2ea,0 10px 22px -14px rgba(20,99,143,.45)}
body main.homepage .home-points .k-ico svg{width:24px;height:24px}

/* flow: icon nodes joined by one line, no boxes */
body main.homepage .home-points.k-flow{gap:2.5rem}
body main.homepage .home-points.k-flow>article{position:relative;isolation:isolate;padding:0;border:0;border-radius:0;background:none;box-shadow:none;text-align:center}
body main.homepage .home-points.k-flow>article::before{display:none}
body main.homepage .home-points.k-flow .k-ico{position:relative;z-index:1;width:56px;height:56px;margin:0 auto 1.5rem;border-radius:50%}
body main.homepage .home-points.k-flow>article:not(:last-child)::after{display:block;content:"";position:absolute;inset:auto;top:28px;left:calc(50% + 40px);width:calc(100% + 2.5rem - 80px);height:0;z-index:0;border-top:1px dashed #2180b8;border-radius:0;background:none;opacity:1;transition:none}
body main.homepage .home-points.k-flow>article:not(:last-child)::before{display:block;content:"";position:absolute;inset:auto;top:24px;left:calc(150% + 2.5rem - 52px);width:8px;height:8px;z-index:0;border:solid #2180b8;border-width:1px 1px 0 0;rotate:45deg;background:none;opacity:1;mask:none;transform:none}
body main.homepage .home-points.k-flow h3{max-width:20ch;margin-inline:auto}
body main.homepage .home-points.k-flow p{max-width:32ch;margin-inline:auto}

/* check: one panel of check rows */
body main.homepage .home-points.k-check{display:block;max-width:760px;margin-inline:auto;padding:6px 32px;border-radius:20px;background:#fff;box-shadow:inset 0 0 0 1px #d6e2ea,0 22px 44px -32px rgba(20,99,143,.45)}
body main.homepage .home-points.k-check>article{display:grid;grid-template-columns:40px minmax(0,1fr);column-gap:20px;padding:24px 0;border:0;border-radius:0;background:none;box-shadow:none}
body main.homepage .home-points.k-check>article+article{border-top:1px solid #d6e2ea}
body main.homepage .home-points.k-check>article::before,body main.homepage .home-points.k-check>article::after{display:none}
body main.homepage .home-points.k-check .k-ico{grid-row:1/span 2;width:40px;height:40px;margin:0;border-radius:50%;color:#2180b8;box-shadow:inset 0 0 0 1px #d6e2ea}
body main.homepage .home-points.k-check .k-ico svg{width:22px;height:22px}
body main.homepage .home-points.k-check h3{align-self:center;font-size:1.125rem;line-height:1.4;letter-spacing:-.01em}
body main.homepage .home-points.k-check p{grid-column:2;margin-top:.25rem}

/* pair: two panels and what joins them */
body main.homepage .home-points.k-2.k-pair{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:stretch;gap:20px}
body main.homepage .home-points.k-pair>article{padding:36px}
body main.homepage .home-points.k-pair .k-join{display:grid;place-items:center;align-self:center;width:44px;height:44px;border-radius:50%;background:#14638f;color:#fff;box-shadow:0 10px 24px -12px rgba(20,99,143,.7)}
body main.homepage .home-points.k-pair .k-join svg{width:20px;height:20px;stroke-width:2}

/* icons: cards led by an icon tile; the link sits at the foot */
body main.homepage .home-points.k-icons>article{display:flex;flex-direction:column}
body main.homepage .home-points.k-icons>article>.tlink{margin-top:auto;padding-top:1.25rem;align-self:flex-start}

/* tiles: cards led by a small still picture on the tint */
body main.homepage .home-points.k-tiles>article{padding:12px 12px 28px}
body main.homepage .home-points.k-tiles>article::before{display:none}
body main.homepage .home-points.k-tiles>article>:is(h3,p){padding-inline:12px}
body main.homepage .home-points.k-tiles .k-art{position:relative;display:grid;place-items:center;height:136px;margin:0 0 1.5rem;border-radius:12px;background:#edf3f8;overflow:hidden}
body main.homepage .home-points .k-chip{position:relative;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#fff;color:#14638f;box-shadow:inset 0 0 0 1px #d6e2ea,0 8px 18px -12px rgba(20,99,143,.45)}
body main.homepage .home-points .k-chip svg{width:20px;height:20px}
body main.homepage .home-points .k-row{display:flex;align-items:center;gap:8px}
body main.homepage .home-points .k-dash{width:20px;height:0;border-top:1px dashed #2180b8}
body main.homepage .home-points .k-dash.k-long{width:52px}
body main.homepage .home-points .k-chip.k-on{color:#fff;background:#2180b8;box-shadow:0 0 0 6px #dbeaf4,0 10px 22px -12px rgba(20,99,143,.7)}
body main.homepage .home-points .k-stack{position:relative;width:88px;height:56px}
body main.homepage .home-points .k-stack .k-chip{position:absolute;border-radius:12px}
body main.homepage .home-points .k-stack .k-chip:nth-child(1){left:0;top:16px}
body main.homepage .home-points .k-stack .k-chip:nth-child(2){left:24px;top:8px}
body main.homepage .home-points .k-stack .k-chip:nth-child(3){left:48px;top:0}
body main.homepage .home-points .k-stack .k-chip.k-badge{left:auto;right:-14px;top:auto;bottom:-10px;width:28px;height:28px;border-radius:50%;color:#fff;background:#14638f}
body main.homepage .home-points .k-stack .k-badge svg{width:15px;height:15px;stroke-width:2}
body main.homepage .home-points .k-scatter{position:relative;width:176px;height:100px}
body main.homepage .home-points .k-scatter .k-chip{position:absolute}
body main.homepage .home-points .k-scatter .k-chip:nth-child(1){left:6px;top:6px}
body main.homepage .home-points .k-scatter .k-chip:nth-child(2){left:62px;top:0}
body main.homepage .home-points .k-scatter .k-chip:nth-child(3){left:22px;top:56px}
body main.homepage .home-points .k-scatter .k-chip:nth-child(4){left:80px;top:52px}
body main.homepage .home-points .k-scatter .k-chip:nth-child(5){left:134px;top:28px;outline:1px dashed #2180b8;outline-offset:5px}

@media(max-width:900px){
 body main.homepage .home-points.k-pair>article{padding:28px}
}
@media(max-width:640px){
 body main.homepage .home-points.k-flow{gap:2rem}
 body main.homepage .home-points.k-flow>article{min-height:56px;padding-left:76px;text-align:left}
 body main.homepage .home-points.k-flow .k-ico{position:absolute;left:0;top:0;margin:0}
 body main.homepage .home-points.k-flow h3,body main.homepage .home-points.k-flow p{margin-inline:0}
 body main.homepage .home-points.k-flow h3{padding-top:.75rem}
 body main.homepage .home-points.k-flow>article:not(:last-child)::after{top:68px;left:28px;width:0;height:calc(100% - 80px + 2rem);border-top:0;border-left:1px dashed #2180b8}
 body main.homepage .home-points.k-flow>article:not(:last-child)::before{display:none}
 body main.homepage .home-points.k-check{padding:4px 20px}
 body main.homepage .home-points.k-check h3{font-size:1rem}
 body main.homepage .home-points.k-2.k-pair{grid-template-columns:1fr;gap:12px}
 body main.homepage .home-points.k-pair .k-join{justify-self:center}
 body main.homepage .home-points.k-pair .k-join svg{rotate:90deg}
 body main.homepage .home-points.k-pair>article{padding:26px 24px}
}
@media (forced-colors:active){body main.homepage .home-points :is(.k-ico,.k-chip,.k-join){outline:1px solid CanvasText}}
