:root { --ink:#151a18; --muted:#526159; --line:#e2e8e4; --green:#0fce84; --teal:#0d6972; --mint:#edf8f2; --paper:#f7f9f7; --white:#fff; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:96px; }
body { margin:0; color:var(--ink); background:var(--white); font:16px/1.6 Arial,Helvetica,sans-serif; letter-spacing:0; }
button,a,input { -webkit-tap-highlight-color:transparent; }
a { color:inherit; text-decoration:none; }
button { font:inherit; }
img { max-width:100%; height:auto; display:block; }
button:focus-visible,a:focus-visible,[tabindex]:focus-visible { outline:3px solid var(--teal); outline-offset:5px; }
[hidden] { display:none!important; }
.container { width:min(1160px,calc(100% - 64px)); margin-inline:auto; }
.skip-link { position:fixed; left:12px; top:-80px; background:var(--ink); color:white; padding:12px 18px; z-index:100; }
.skip-link:focus { top:10px; }
.site-header { position:sticky; top:0; z-index:20; background:var(--white); border-bottom:1px solid transparent; }
.site-header.scrolled { border-bottom-color:var(--line); }
.nav-wrap { max-width:1400px; min-height:82px; margin:auto; padding:16px 32px; display:flex; align-items:center; gap:40px; }
.brand { flex:none; }
.brand img { width:122px; height:44px; object-fit:contain; }
.desktop-nav { display:flex; align-items:center; gap:28px; }
.desktop-nav a,.site-footer nav a { font-size:14px; }
.desktop-nav a:hover,.site-footer a:hover { color:var(--teal); }
.button { display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:52px; padding:14px 23px; border:1px solid var(--ink); border-radius:6px; background:var(--ink); color:white; line-height:1.3; font-size:15px; font-weight:600; text-align:center; transition:background .15s,transform .15s; }
.button:hover { background:#293c31; transform:translateY(-1px); }
.button svg { width:18px; height:18px; flex:none; }
.button-small { min-height:44px; padding:12px 19px; font-size:14px; }
.nav-contact { margin-left:auto; }
.icon-button { width:44px; height:44px; display:grid; place-items:center; border:1px solid var(--line); border-radius:6px; background:white; cursor:pointer; }
.icon-button svg { width:22px; height:22px; }
.menu-toggle { display:none; }
.menu-toggle .close-menu-icon { display:none; }
.menu-toggle[aria-expanded=true] .open-menu-icon { display:none; }
.menu-toggle[aria-expanded=true] .close-menu-icon { display:block; }
.mobile-nav { border-top:1px solid var(--line); padding:12px 24px 20px; }
.mobile-nav a { display:block; padding:10px 0; }
.hero { padding:48px 0 0; }
.hero-inner { text-align:center; width:min(850px,calc(100% - 48px)); margin:auto; }
.hero-kicker { display:flex; align-items:center; justify-content:center; gap:9px; margin-bottom:20px; font-size:13px; color:var(--muted); }
.status-square { width:8px; height:8px; background:var(--green); flex:none; }
.hero-headline { font-size:52px; line-height:1.13; font-weight:600; margin:0 0 22px; }
.hero .hero-headline h1,.hero-headline p { width:auto; margin:0; font:inherit; }
.hero-description { width:min(580px,100%); margin:0 auto 28px; font-size:18px; line-height:1.6; }
.hero-actions { display:flex; justify-content:center; align-items:center; gap:25px; margin-bottom:58px; }
.text-link { display:inline-flex; align-items:center; gap:9px; font-size:14px; font-weight:600; text-underline-offset:5px; }
.text-link:hover { text-decoration:underline; }
.text-link svg { width:17px; height:17px; flex:none; }
.care-journey { display:flex; align-items:center; justify-content:center; gap:30px; padding:22px 32px; background:var(--mint); border-block:1px solid #dbece2; }
.care-journey div { display:flex; align-items:center; gap:11px; font-size:14px; white-space:nowrap; }
.care-journey div svg { width:22px; height:22px; stroke:var(--teal); }
.journey-arrow { width:18px; height:18px; color:#7c9c87; }
.section { padding:92px 0; }
.section-heading { max-width:740px; margin-bottom:50px; }
.centred { text-align:center; margin-inline:auto; }
.eyebrow { font-size:13px; color:var(--teal); font-weight:600; margin:0 0 15px; }
h2 { font-size:40px; line-height:1.18; font-weight:600; margin:0 0 22px; }
.section-heading>p:last-child { color:var(--muted); font-size:17px; max-width:580px; margin:0 auto; }
.service-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:35px; }
.service-item { min-width:0; padding-top:27px; border-top:1px solid var(--line); }
.service-icon { width:48px; height:48px; display:grid; place-items:center; margin-bottom:22px; background:var(--mint); border-radius:5px; }
.service-icon svg { width:24px; height:24px; stroke:var(--teal); }
h3 { font-size:20px; line-height:1.3; margin:0 0 15px; font-weight:600; }
.service-item>p { font-size:15px; color:var(--muted); margin:0 0 22px; }
.service-item ul { padding:0; margin:0; list-style:none; }
.service-item li { font-size:14px; padding:6px 0; border-bottom:1px solid #f0f3f1; }
.work { background:var(--paper); }
.work-tabs { display:flex; align-items:stretch; gap:5px; padding:6px; border-radius:6px; background:#e8eeea; width:fit-content; max-width:100%; margin:0 auto 46px; }
.work-tabs button { display:flex; justify-content:center; align-items:center; gap:9px; border:0; background:transparent; color:#46514b; padding:12px 20px; border-radius:4px; font-size:14px; cursor:pointer; white-space:nowrap; min-height:46px; }
.work-tabs button[aria-selected=true] { background:var(--ink); color:white; }
.work-tabs svg { width:18px; height:18px; flex:none; }
.work-panel { display:grid; grid-template-columns:1fr 1.14fr; gap:76px; align-items:center; min-height:405px; }
.work-copy { max-width:410px; }
.work-copy h3 { font-size:32px; line-height:1.2; }
.work-copy>p:not(.eyebrow) { font-size:16px; color:var(--muted); margin:0 0 18px; }
.work-copy .text-link { margin-top:10px; }
.work-visual { margin:0; min-width:0; border:1px solid #d9e3dc; border-radius:6px; background:var(--white); padding:24px; min-height:396px; }
.visual-topline { display:flex; justify-content:space-between; align-items:center; font-weight:600; font-size:14px; border-bottom:1px solid var(--line); padding-bottom:20px; gap:12px; }
.visual-topline svg { width:20px; height:20px; color:var(--teal); flex:none; }
.workflow-list { margin:0; padding:10px 0 0; list-style:none; }
.workflow-list li { display:flex; align-items:center; gap:14px; padding:14px 0; border-bottom:1px solid #f0f3f1; }
.step-icon { width:36px; height:36px; flex:none; display:grid; place-items:center; color:var(--teal); }
.step-icon svg { width:22px; height:22px; }
.workflow-list strong { font-size:14px; font-weight:600; display:block; }
.workflow-list div>span { font-size:13px; display:block; color:var(--muted); }
.workflow-list li>svg { margin-left:auto; width:16px; height:16px; color:var(--teal); flex:none; }
.ai-flow { padding-top:16px; display:grid; gap:8px; }
.ai-flow>div { position:relative; padding:7px 0 7px 36px; }
.ai-flow strong,.ai-flow div>span:not(.flow-number) { display:block; }
.ai-flow strong { font-size:14px; }
.ai-flow div>span:not(.flow-number) { font-size:13px; color:var(--muted); }
.flow-number { position:absolute; left:0; top:9px; font-size:13px; color:var(--teal); }
.ai-flow>svg { width:16px; height:16px; margin-left:39px; color:#94a19a; }
.ai-flow .human-step { padding-block:12px; padding-right:28px; border-block:1px solid var(--line); }
.human-step>svg { width:20px; height:20px; position:absolute; right:0; top:12px; color:var(--teal); }
.data-questions { padding-top:6px; }
.data-questions div { position:relative; border-bottom:1px solid var(--line); padding:14px 24px 14px 0; }
.data-questions span { display:block; font-size:13px; color:var(--teal); }
.data-questions strong { display:block; font-size:14px; }
.data-questions svg { width:16px; height:16px; position:absolute; right:0; top:29px; color:var(--teal); }
.approach-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding:0; list-style:none; margin:0; gap:35px; }
.approach-grid li { border-top:1px solid var(--line); padding-top:23px; }
.approach-grid li>span { font-size:13px; color:var(--teal); display:block; margin-bottom:22px; }
.approach-grid h3 { font-size:18px; }
.approach-grid p { color:var(--muted); font-size:15px; }
.about { background:#f0f7f3; }
.about-grid { display:grid; grid-template-columns:1.2fr 1fr; align-items:start; gap:76px; }
.about-copy p:not(.eyebrow) { max-width:540px; color:var(--muted); margin:0 0 18px; }
.about-copy .text-link { margin-top:10px; }
.team-capabilities { list-style:none; padding:0; margin:0; }
.team-capabilities li { display:flex; gap:18px; border-top:1px solid #d5e3da; padding:22px 0; }
.team-capabilities svg { width:24px; height:24px; flex:none; color:var(--teal); margin-top:2px; }
.team-capabilities h3 { margin-bottom:8px; }
.team-capabilities p { margin:0; color:var(--muted); font-size:15px; }
.team-approach { margin-top:48px; padding-top:32px; border-top:1px solid #d5e3da; }
.team-approach>h3 { margin-bottom:24px; }
.team-approach .approach-grid li { border:0; padding:0; }
.team-approach .approach-grid li>span { margin-bottom:10px; }
.team-approach .approach-grid h3 { margin-bottom:8px; }
.team-approach .approach-grid p { margin:0; }
.contact { text-align:center; padding:94px 0 86px; }
.contact .container>p:not(.eyebrow) { max-width:560px; margin:0 auto 28px; color:var(--muted); }
.contact h2 { font-size:44px; }
.contact-email { display:block; margin:22px auto 12px; width:fit-content; font-size:16px; text-decoration:underline; text-underline-offset:5px; }
.contact .container>.contact-note { font-size:12px; margin-bottom:0; }
.site-footer { border-top:1px solid var(--line); padding:38px 0; }
.footer-grid { display:grid; grid-template-columns:150px 1fr auto; gap:16px 24px; align-items:center; }
.site-footer p { color:var(--muted); font-size:13px; margin:0; }
.site-footer nav { display:flex; gap:24px; }
.site-footer small { grid-column:1/-1; color:var(--muted); font-size:12px; }
@media(min-width:1600px) { .hero { padding-top:56px; } .hero-actions { margin-bottom:62px; } }
@media(max-width:1050px) { .nav-wrap { gap:30px; } .desktop-nav { gap:18px; } .care-journey { gap:16px; } .service-grid,.approach-grid { gap:26px; } .work-panel { gap:40px; } .about-grid { gap:60px; } }
@media(max-width:850px) { .desktop-nav { display:none; } .menu-toggle { display:grid; } .nav-wrap { gap:16px; } .service-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:36px; } .care-journey { display:grid; grid-template-columns:1fr 1fr; justify-items:start; gap:18px 28px; padding-inline:32px; } .journey-arrow { display:none; } .work-panel { grid-template-columns:1fr; gap:32px; } .work-copy { max-width:620px; } .work-visual { min-height:0; } .about-grid { grid-template-columns:1fr; gap:32px; } .team-capabilities { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; } .team-capabilities li { display:block; } .team-capabilities svg { margin-bottom:14px; } h2 { font-size:34px; } .footer-grid { grid-template-columns:150px 1fr; } .site-footer nav { grid-column:1/-1; } }
@media(max-width:540px) { html { scroll-padding-top:82px; } .container { width:calc(100% - 40px); } .nav-wrap { min-height:72px; padding:14px 20px; gap:10px; } .brand img { width:99px; height:36px; } .nav-contact { min-height:40px; padding:10px 12px; font-size:13px; } .icon-button { width:40px; height:40px; } .hero { padding-top:34px; } .hero-inner { width:calc(100% - 40px); } .hero-kicker { font-size:11px; gap:7px; margin-bottom:20px; } .hero h1 { width:183px; margin-bottom:21px; } .hero h1 img { width:183px; height:66px; } .hero-headline { font-size:34px; line-height:1.16; margin-bottom:20px; } .hero-description { font-size:16px; line-height:1.6; } .hero-actions { flex-direction:column; gap:19px; margin-bottom:36px; } .hero-actions .button { font-size:14px; } .care-journey { padding:20px; gap:17px 13px; } .care-journey div { font-size:11px; gap:8px; white-space:normal; } .care-journey div svg { width:19px; height:19px; flex:none; } .section { padding:62px 0; } .section-heading { margin-bottom:34px; } .eyebrow { font-size:12px; margin-bottom:13px; } h2 { font-size:30px; line-height:1.23; } .section-heading>p:last-child { font-size:15px; } .service-grid { grid-template-columns:1fr; gap:22px; } .service-item { display:grid; grid-template-columns:45px 1fr; column-gap:16px; padding-top:22px; } .service-icon { width:42px; height:42px; grid-row:1/4; margin:0; } .service-item h3 { font-size:18px; margin-bottom:10px; } .service-item p { font-size:14px; margin-bottom:13px; } .service-item ul { grid-column:2; } .work-tabs { width:100%; gap:3px; padding:4px; margin-bottom:28px; } .work-tabs button { flex:1; padding:10px 7px; font-size:11px; gap:5px; white-space:normal; line-height:1.4; } .work-tabs svg { width:15px; height:15px; } .work-panel { gap:24px; min-height:0; } .work-copy h3 { font-size:27px; } .work-copy p:not(.eyebrow) { font-size:15px; } .work-visual { padding:18px; } .visual-topline { font-size:12px; padding-bottom:15px; } .workflow-list li { gap:8px; padding:13px 0; } .step-icon { width:26px; } .workflow-list strong { font-size:12px; } .workflow-list div>span { font-size:10px; } .workflow-list li>svg { width:14px; } figcaption { font-size:10px; } .ai-flow strong,.data-questions strong { font-size:12px; } .ai-flow div>span:not(.flow-number) { font-size:10px; } .approach-grid { gap:23px; } .approach-grid h3 { font-size:16px; } .approach-grid p { font-size:13px; } .about-grid { grid-template-columns:1fr; gap:32px; } .about-brand { justify-content:start; } .about-brand img { width:80px; } .about-copy p:not(.eyebrow) { font-size:15px; } .contact h2 { font-size:30px; } .contact .container>p:not(.eyebrow) { font-size:15px; } .contact .container>.contact-note { font-size:11px; } .footer-grid { grid-template-columns:1fr; gap:18px; } .site-footer nav { flex-wrap:wrap; gap:21px; } .site-footer { padding:30px 0; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none!important; animation:none!important; } }
@media(max-width:540px) {
  .hero-kicker { font-size:12px; }
  .care-journey div { font-size:12px; }
  .work-tabs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
  .work-tabs button { flex-direction:column; gap:6px; padding:10px 5px; font-size:13px; min-height:84px; }
  .work-tabs svg { width:18px; height:18px; }
  .work-visual { padding:20px; }
  .visual-topline { font-size:14px; }
  .workflow-list strong,.ai-flow strong,.data-questions strong { font-size:14px; }
  .workflow-list div>span,.ai-flow div>span:not(.flow-number),.data-questions span { font-size:13px; }
  .approach-grid,.team-capabilities { grid-template-columns:1fr; gap:24px; }
  .approach-grid p { font-size:15px; }
  .team-capabilities li { display:flex; padding:18px 0 0; }
  .team-capabilities svg { margin-bottom:0; }
  .team-approach { margin-top:32px; padding-top:24px; }
  .contact .container>.contact-note { font-size:13px; }
}
@media(max-width:540px) and (max-height:700px) { .hero { padding-top:24px; } .hero-kicker { margin-bottom:14px; font-size:12px; } .hero h1 { width:145px; margin-bottom:14px; } .hero h1 img { width:145px; height:52px; } .hero-headline { font-size:26px; margin-bottom:16px; } .hero-description { font-size:14px; line-height:1.5; margin-bottom:22px; } .hero-actions { margin-bottom:24px; gap:14px; } .hero-actions .button { min-height:44px; padding:11px 16px; font-size:13px; } .hero-actions .text-link { font-size:13px; } }

.hero-actions { margin-bottom:22px; }
.hero-trust { display:inline-flex; align-items:center; gap:8px; margin-bottom:38px; color:var(--teal); font-size:14px; font-weight:600; }
.hero-trust:hover { text-decoration:underline; text-underline-offset:4px; }
.hero-trust svg { width:19px; height:19px; }
.hero-product { margin-block:0; }
.hero-product img { width:100%; border-radius:18px; }
.product-visual { padding:0; border:0; background:transparent; }
.product-visual img { width:100%; max-height:550px; object-fit:contain; }
.work-panel { gap:70px; }
.trust-section { padding:0 0 70px; }
.trust-content { display:flex; align-items:center; justify-content:center; gap:28px; padding:30px 36px; border-top:1px solid var(--line); }
.trust-icon { width:62px; height:62px; background:var(--mint); border-radius:12px; flex:none; display:grid; place-items:center; color:var(--teal); }
.trust-icon svg { width:30px; height:30px; }
.trust-content .eyebrow { margin-bottom:7px; }
.trust-content h2 { font-size:26px; margin-bottom:7px; }
.trust-content p:last-child { color:var(--muted); margin:0; font-size:15px; }
@media(max-width:850px) { .work-panel { gap:32px; } .product-visual { max-width:550px; margin-inline:auto; width:100%; } }
@media(max-width:540px) { .hero-trust { margin-bottom:27px; font-size:14px; } .hero-product { width:calc(100% - 40px); } .hero-product img { border-radius:12px; } .hero-actions { margin-bottom:20px; } .trust-section { padding-bottom:38px; } .trust-content { gap:16px; padding:26px 0; align-items:flex-start; } .trust-icon { width:44px; height:44px; border-radius:9px; } .trust-icon svg { width:23px; height:23px; } .trust-content h2 { font-size:23px; } .trust-content p:last-child { font-size:14px; } }
.proof-section { padding:58px 0 0; text-align:center; }
.proof-section h2 { font-size:25px; margin-bottom:10px; }
.proof-intro { color:var(--muted); margin:0 0 32px; font-size:15px; }
.proof-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin:0; padding:0 0 30px; gap:28px; }
.proof-grid>div { min-width:0; display:flex; flex-direction:column; border-left:1px solid var(--line); }
.proof-grid>div:first-child { border-left:0; }
.proof-grid dt { font-size:15px; color:var(--muted); order:2; }
.proof-grid dd { font-size:43px; color:#173347; font-weight:600; line-height:1.15; margin:0 0 10px; letter-spacing:-1px; order:1; }
.proof-grid dd span { color:var(--teal); font-size:31px; margin-left:3px; }
.proof-grid p { order:3; margin:7px 0 0; font-size:12px; color:var(--muted); }
.proof-details { max-width:800px; margin-inline:auto; color:var(--muted); font-size:13px; }
.proof-details summary { width:fit-content; margin-inline:auto; cursor:pointer; text-underline-offset:4px; }
.proof-details summary:hover { color:var(--teal); }
.proof-details summary:focus-visible { outline:3px solid var(--teal); outline-offset:5px; }
.proof-details>div { text-align:left; margin-top:20px; padding:20px 24px; border:1px solid var(--line); border-radius:6px; background:var(--paper); }
.proof-details p { margin:0 0 12px; }
.proof-details p:last-child { margin-bottom:0; }
@media(max-width:850px) { .proof-grid dd { font-size:36px; } .proof-grid dt { font-size:14px; } }
@media(max-width:540px) { .proof-section { padding-top:35px; } .proof-section h2 { font-size:22px; } .proof-intro { font-size:14px; max-width:290px; margin-inline:auto; } .proof-grid { grid-template-columns:1fr; gap:22px; padding-bottom:25px; } .proof-grid>div { border-left:0; padding-bottom:22px; border-bottom:1px solid var(--line); } .proof-grid>div:last-child { border:0; padding-bottom:0; } .proof-grid dd { font-size:38px; } .proof-grid dt { font-size:15px; } .proof-grid p { font-size:13px; } .proof-details { font-size:13px; } }
.proof-grid dd.proof-period { order:3; margin:7px 0 0; font-size:12px; font-weight:400; letter-spacing:0; line-height:1.6; color:var(--muted); }
@media(max-width:540px) { .proof-grid dd.proof-period { font-size:13px; } }

.work-panel { display:block; min-height:0; max-width:720px; margin-inline:auto; text-align:center; }
.work-copy { max-width:none; }
.work-copy>p:not(.eyebrow) { max-width:640px; margin:0 auto 18px; }
.proof-grid { padding-bottom:0; }

.proof-section h2 { margin-bottom:32px; }

.hero-actions { margin-bottom:0; }
.proof-section { padding:38px 0 0; }
.proof-section .container { padding-block:24px; border-block:1px solid var(--line); }
.proof-grid { gap:24px; }
.proof-grid dd { font-size:36px; margin-bottom:8px; }
.proof-grid dd span { font-size:27px; }
.proof-grid dt { font-size:14px; line-height:1.45; }
.services { padding-top:76px; }
.work-copy h3 { margin-bottom:20px; }
.about .trust-section { margin-top:36px; padding:0; }
.about .trust-content { justify-content:flex-start; padding:28px 0 0; border-color:#d5e3da; gap:22px; }
.about .trust-icon { width:52px; height:52px; background:var(--white); }
.about .trust-content h3 { font-size:23px; margin:0 0 7px; }
@media(max-width:540px) {
  .proof-section { padding-top:28px; }
  .proof-section .container { padding-block:22px; }
  .proof-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; }
  .proof-grid>div { padding:0 7px; border-bottom:0; border-left:1px solid var(--line); }
  .proof-grid>div:first-child { border-left:0; }
  .proof-grid>div:last-child { padding:0 7px; border-left:1px solid var(--line); }
  .proof-grid dd { font-size:clamp(18px,5.6vw,26px); letter-spacing:-.5px; margin-bottom:8px; }
  .proof-grid dd span { font-size:inherit; margin-left:1px; }
  .proof-grid dt { font-size:12px; }
  .services { padding-top:54px; }
  .about .trust-section { margin-top:28px; }
  .about .trust-content { gap:16px; padding-top:24px; }
  .about .trust-icon { width:44px; height:44px; }
  .about .trust-content h3 { font-size:21px; }
}

/* Jhool continuous-thread illustrations: original decorative artwork. */
.thread-hero { width:min(940px,calc(100% - 64px)); height:184px; margin:22px auto 0; overflow:hidden; }
.thread-hero img { width:100%; height:100%; object-fit:cover; object-position:center; }
.proof-section { padding-top:22px; }
.work-panel { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:56px; align-items:center; max-width:1040px; min-height:350px; text-align:left; }
.work-panel[hidden] { display:none; }
.work-copy>p:not(.eyebrow) { max-width:none; margin:0 0 18px; }
.thread-illustration { min-width:0; display:flex; align-items:center; justify-content:center; }
.thread-illustration img { width:100%; height:330px; object-fit:contain; }
@media(max-width:850px) {
  .thread-hero { height:155px; margin-top:20px; }
  .work-panel { gap:28px; }
  .work-copy h3 { font-size:28px; }
  .thread-illustration img { height:280px; }
}
@media(max-width:600px) {
  .thread-hero { width:calc(100% - 40px); height:105px; margin-top:16px; }
  .proof-section { padding-top:16px; }
  .work-panel { display:flex; flex-direction:column-reverse; align-items:stretch; gap:20px; min-height:0; }
  .thread-illustration img { width:100%; height:220px; }
  .work-copy h3 { font-size:27px; }
}
