:root{--blue:#1e5af8;--blue-dark:#174bd0;--ink:#171717;--muted:#575957;--line:#d3cec4;--soft:#ece8df;--white:#fff;--paper:#f5f3ed;--stone:#e8e4dc;--charcoal:#191b1d;--night-line:#414547}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans",sans-serif;font-size:16px;line-height:1.55}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
h1,h2,h3,p{margin:0}
h1,h2,h3{font-family:"DM Sans",sans-serif;letter-spacing:-.055em;line-height:1.1;font-weight:400}
h1{font-size:clamp(2.7rem,4.1vw,3.75rem)}
h2{font-size:clamp(2rem,3.2vw,2.8rem)}
h3{font-size:1.65rem}
p{color:var(--muted)}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.container{width:min(1320px,calc(100% - 80px));margin-inline:auto}
.section{border-bottom:1px solid var(--line);scroll-margin-top:70px}
.section-pad{padding:110px 0}
.skip-link{position:absolute;left:-9999px;top:10px;z-index:100;padding:10px 14px;background:#fff;border:1px solid var(--line)}
.skip-link:focus{left:10px}
.material-symbols-outlined{font-family:"Material Symbols Outlined";font-weight:normal;font-style:normal;font-size:19px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;font-feature-settings:"liga";-webkit-font-smoothing:antialiased}
.site-header{position:sticky;top:0;z-index:40;background:var(--paper);border-bottom:1px solid var(--line)}
.nav-shell{min-height:68px;display:flex;align-items:center;gap:0}
.brand{display:inline-flex;align-items:center;flex:none}
.brand img{width:103px;height:auto}
.desktop-nav{display:flex;align-items:center;gap:27px;margin-left:48px}
.desktop-nav a,.footer-links a{font-size:.875rem;font-weight:400;color:#3e3e3e}
.desktop-nav a:hover,.footer-links a:hover,.text-link:hover{color:var(--blue)}
.nav-shell>.button{margin-left:auto}
.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:1px solid var(--blue);border-radius:5px;background:var(--blue);color:#fff;min-height:43px;padding:9px 17px;font-size:.875rem;font-weight:500;white-space:nowrap;line-height:1.2}
.button:hover{background:var(--blue-dark);border-color:var(--blue-dark)}
.button-small{min-height:35px;padding:7px 13px;font-size:.82rem}
.button-outline{background:transparent;border-color:var(--line);color:var(--ink)}
.button-outline:hover{background:var(--soft);border-color:#cfcfcf}
.button .material-symbols-outlined,.text-link .material-symbols-outlined{font-size:17px}
.text-link{display:inline-flex;align-items:center;gap:8px;color:var(--ink);font-size:.9rem;font-weight:500}
.hero{background:var(--charcoal);color:var(--paper);border-bottom-color:var(--night-line)}
.hero-grid{min-height:590px;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(290px,.65fr);gap:9%;align-items:end;padding:110px 0 104px}
.hero-copy{align-self:center}
.hero h1{max-width:730px;line-height:1.12}
.hero h1 span{color:var(--paper)}
.hero-aside{max-width:400px;padding-bottom:8px}
.hero .lead{color:#c7c9c7}
.hero .button-outline{color:var(--paper);border-color:#777d7d}
.hero .button-outline:hover{background:#2b2f31;border-color:#a5a9a8}
.hero-visual{width:100%;margin-bottom:29px}
.hero-visual svg{display:block;width:100%;height:auto;overflow:visible}
.hero-visual [stroke="#171717"]{stroke:#e6e6e1}
.hero-visual [fill="#171717"]{fill:#f1f0ea}
.hero-visual [stroke="#d4d4d4"]{stroke:#656c6e}
.hero-blue-module{animation:hero-module 6s ease-in-out infinite}
.hero-blue-composition{animation:hero-composition 6s ease-in-out infinite}
.hero-flow{stroke-dasharray:10 50;animation:hero-flow 3s linear infinite}
.hero-flow-two{animation-delay:1.5s}
.hero-branch rect{animation:hero-branch 6s ease-in-out infinite}
.hero-branch rect:nth-child(2){animation-delay:1s}
.hero-branch rect:nth-child(3){animation-delay:2s}
@keyframes hero-module{0%,100%{transform:translateX(0)}50%{transform:translateX(7px)}}
@keyframes hero-composition{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes hero-flow{to{stroke-dashoffset:-60}}
@keyframes hero-branch{0%,100%{opacity:.25}35%,55%{opacity:1}}
.lead{font-size:1.1rem;line-height:1.55}
.actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:26px}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:36px}
.section-head h2{max-width:700px}
.section-head p{font-size:1rem;max-width:360px}
#what-we-do{background:var(--stone)}
.service-grid{display:grid;grid-template-columns:1.05fr 1fr;grid-template-rows:repeat(2,minmax(255px,auto));gap:14px}
.service-card{border:1px solid #c9c3b8;border-radius:4px;padding:29px 31px;background:var(--paper);display:flex;flex-direction:column;justify-content:space-between;min-width:0}
.service-card:first-child{grid-row:span 2;background:var(--charcoal);color:var(--paper);border-color:var(--charcoal)}
.service-card:first-child p{color:#c7c9c7}
.service-card:first-child .service-arrow{color:var(--paper);border-color:#777c7d}
.service-card h3{font-size:clamp(1.7rem,2.3vw,2.25rem)}
.service-card:first-child h3{font-size:clamp(2rem,2.8vw,2.8rem)}
.service-illustration{display:block;width:100%;height:118px;object-fit:contain;margin:6px auto}
.service-card:first-child .service-illustration{height:290px;background:#ece9e2;padding:22px;border-radius:3px}
.service-card-bottom{display:flex;justify-content:space-between;align-items:end;gap:25px}
.service-card p{font-size:.94rem;line-height:1.5;max-width:390px}
.service-card .service-arrow{flex:none;display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--line);border-radius:4px}
.service-card:hover,.service-card:focus-visible{border-color:#aab8da}
.service-card:hover .service-arrow,.service-card:focus-visible .service-arrow{color:var(--blue);border-color:var(--blue)}
.service-card .service-arrow .material-symbols-outlined{font-size:18px}
.split-section{background:var(--paper)}
.split-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:12%;align-items:start}
.split-grid h2{max-width:650px;margin-bottom:25px}
.section-lead{font-size:1rem;line-height:1.65;max-width:590px;margin-bottom:30px}
.process-list{border-top:1px solid var(--line)}
.process-list>div{display:grid;grid-template-columns:42px 1fr;gap:0 14px;padding:18px 0;border-bottom:1px solid var(--line)}
.process-list span{grid-row:span 2;font-size:.82rem;color:#787878}
.process-list strong{font-size:.94rem;font-weight:500}
.process-list p{font-size:.88rem;margin-top:5px}
.product-row{display:flex;justify-content:space-between;align-items:center;gap:48px}
#products{background:var(--charcoal);color:var(--paper);border-bottom-color:var(--night-line)}
.product-row p{color:#c5c8c7}
.product-row .text-link{color:var(--paper)}
.product-row .text-link:hover{color:#9bb6ff}
.product-row h2{font-size:clamp(1.9rem,3vw,2.65rem);margin-bottom:12px}
.product-row p{font-size:.98rem;max-width:590px}
.product-row>.text-link{white-space:nowrap}
.insights-section{background:var(--stone)}
.with-action>div{max-width:790px}
.with-action .text-link{white-space:nowrap}
.article-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.article-card{display:block;border:1px solid #c9c3b8;border-radius:4px;overflow:hidden;background:var(--paper)}
.article-card:hover{border-color:#bfc6d8}
.article-card img{width:100%;aspect-ratio:16/9;object-fit:cover}
.article-card-body{padding:20px 22px 24px}
.article-category{display:block;font-size:.73rem;letter-spacing:.02em;font-weight:500;color:var(--muted);margin-bottom:12px}
.article-card h3{font-size:1.25rem;line-height:1.25;letter-spacing:-.035em;margin-bottom:23px}
.article-card p{font-size:.9rem;margin-bottom:23px}
.read-link{color:var(--blue);font-weight:500;font-size:.85rem;display:inline-flex;align-items:center;gap:4px}
.read-link .material-symbols-outlined{font-size:16px}
.contact-section{background:#dce4f4}
.contact-inner{display:flex;justify-content:space-between;align-items:end;gap:40px}
.contact-inner h2{max-width:610px}
.contact-inner p{font-size:1rem;max-width:360px;margin-top:16px}
.button-white{background:var(--blue);color:#fff}
.button-white:hover{background:var(--blue-dark)}
.site-footer{background:#111;color:#fff}
.site-footer .footer-about p,.site-footer .footer-links a,.site-footer .footer-links address,.site-footer .footer-bottom{color:#bdbdbd}
.site-footer .footer-links h2{color:#fff}
.site-footer .footer-links a:hover{color:#fff}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1.5fr;gap:50px;padding:60px 0 65px}
.footer-about p{margin-top:16px;max-width:280px;font-size:.9rem}
.footer-links{display:flex;flex-direction:column;gap:10px}
.footer-links h2{font-size:.86rem;letter-spacing:0;margin-bottom:7px;font-weight:500}
.footer-links address{font-style:normal;color:var(--muted);font-size:.86rem;line-height:1.7}
.footer-bottom{display:flex;justify-content:space-between;gap:20px;padding:20px 0;border-top:1px solid #333;font-size:.79rem}
.blog-hero{padding:100px 0 60px;background:var(--charcoal);color:var(--paper);border-bottom:1px solid var(--night-line)}
.blog-hero .container{max-width:980px}
.blog-hero h1{font-size:clamp(2.5rem,4.2vw,3.75rem);max-width:760px}
.blog-hero p{font-size:1rem;max-width:580px;margin-top:25px;color:#c7c9c7}
.blog-grid{padding:24px 0 110px}
.feed-list{max-width:980px;margin:auto}
.feed-item{border-bottom:1px solid var(--line)}
.feed-link{display:grid;grid-template-columns:minmax(0,1fr) 225px;gap:48px;align-items:center;padding:34px 0}
.feed-link:hover{background:#ebe7de}
.feed-link:hover h2{color:var(--blue)}
.feed-meta{display:flex;gap:9px;align-items:center;color:var(--muted);font-size:.78rem;margin-bottom:11px}
.feed-copy h2{font-size:1.65rem;font-weight:500;line-height:1.25;letter-spacing:-.04em}
.feed-copy p{font-size:.94rem;line-height:1.55;max-width:630px;margin:11px 0 16px}
.feed-author{display:block;font-size:.78rem;color:var(--muted)}
.feed-link img{width:225px;height:150px;object-fit:cover;border-radius:4px}
.article-meta{font-size:.8rem;color:var(--muted)}
.article-page{position:relative;background:var(--stone);padding-bottom:105px}
.article-page:before{content:"";position:absolute;inset:0 0 auto;height:590px;background:var(--charcoal)}
.article-page>.container{position:relative}
.article-header{max-width:900px;margin:auto;padding:94px 0 47px;text-align:center;color:var(--paper)}
.article-header h1{font-size:clamp(2.45rem,4vw,3.65rem);font-weight:500;margin:16px 0 22px}
.article-header .article-category{font-size:.82rem;color:#d3d5d3}
.article-header .article-meta{color:#c5c7c5}
.article-cover{display:block;width:min(100%,940px);aspect-ratio:16/8;object-fit:cover;border-radius:4px;margin:auto}
.article-layout{max-width:840px;margin:25px auto 0;padding:64px;background:#fff;border:1px solid #d0c9bf}
.article-body{font-size:1.06rem;line-height:1.84}
.article-body p{color:#343434;margin-bottom:22px}
.article-body .article-intro{font-size:1.23rem;line-height:1.6;color:var(--ink);margin-bottom:35px}
.article-body h2{font-size:1.85rem;line-height:1.25;font-weight:500;margin:50px 0 18px}
.article-body h3{font-size:1.35rem;margin:30px 0 12px}
.article-body ul{padding-left:25px;color:#3c3c3c}
.article-body li{margin-bottom:10px}
.article-body a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}
.sources{margin-top:55px;padding-top:25px;border-top:1px solid var(--line)}
.sources h2{font-size:1.25rem;margin:0 0 12px}
.sources ul{font-size:.9rem}
.article-back{display:inline-flex;align-items:center;gap:6px;margin-top:45px;color:var(--blue);font-weight:500}
.article-back .material-symbols-outlined{font-size:18px}
.service-page-hero{background:var(--charcoal);color:var(--paper);border-bottom:1px solid var(--night-line)}
.service-page-hero-grid{min-height:570px;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:8%;align-items:center;padding:85px 0}
.service-page-copy{max-width:650px}
.service-back{display:inline-flex;align-items:center;gap:7px;font-size:.86rem;color:#c7c9c7;margin-bottom:35px}
.service-back:hover{color:var(--paper)}
.service-back .material-symbols-outlined{font-size:17px}
.service-page-copy h1{font-size:clamp(2.8rem,4vw,3.7rem);margin-bottom:25px}
.service-page-copy p{font-size:1.08rem;line-height:1.6;max-width:570px;margin-bottom:30px;color:#c7c9c7}
.service-page-art{min-width:0;min-height:330px;display:flex;align-items:center;justify-content:center;background:#edeae3;border:1px solid #c9c4ba;padding:34px}
.service-page-art img{display:block;width:100%;height:auto;max-height:350px;object-fit:contain}
.service-page-section{padding:100px 0;border-bottom:1px solid var(--line);background:var(--paper)}
.service-page-split{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:12%}
.service-page-split h2,.service-page-section-head h2,.service-related h2{max-width:520px;margin-bottom:20px}
.service-page-split>div>p,.service-page-section-head p,.service-related p{max-width:510px;line-height:1.65}
.service-detail-list{border-top:1px solid var(--line)}
.service-detail-list article{padding:23px 0;border-bottom:1px solid var(--line)}
.service-detail-list h3{font-size:1.25rem;font-weight:500;letter-spacing:-.035em;margin-bottom:9px}
.service-detail-list p{font-size:.94rem;line-height:1.55}
.service-page-process{background:var(--charcoal);color:var(--paper);border-bottom-color:var(--night-line)}
.service-page-process p{color:#c7c9c7}
.service-page-section-head{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:45px}
.service-step-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:35px}
.service-step-grid article{border-top:1px solid #626769;padding-top:19px}
.service-step-number{display:block;font-size:.8rem;color:#9bb6ff;margin-bottom:34px}
.service-step-grid h3{font-size:1.35rem;font-weight:500;letter-spacing:-.035em;margin-bottom:13px}
.service-step-grid p{font-size:.92rem;line-height:1.6;max-width:340px}
.service-page-related{background:var(--stone)}
.service-related{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.7fr);gap:12%;align-items:center}
.service-related-links{border-top:1px solid var(--line)}
.service-related-link{display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid var(--line);padding:22px 0;font-size:1.35rem;letter-spacing:-.035em}
.service-related-link:hover{color:var(--blue)}
.service-related-link .material-symbols-outlined{font-size:20px}
@media(max-width:1000px){.hero-grid{gap:5%}.section-pad{padding:85px 0}.split-grid{gap:7%}}
@media(max-width:780px){.container{width:min(1320px,calc(100% - 48px))}.hero-grid{grid-template-columns:1fr;min-height:0;gap:45px;padding:100px 0 90px}.hero-copy{align-self:auto}.hero-aside{max-width:620px;padding:0}.split-grid{grid-template-columns:1fr;gap:45px}.article-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.feed-link{grid-template-columns:minmax(0,1fr) 180px;gap:26px}.feed-link img{width:180px;height:130px}}
@media(max-width:600px){.container{width:calc(100% - 36px)}.nav-shell{min-height:62px;flex-wrap:wrap;gap:0;padding:10px 0}.brand img{width:96px}.desktop-nav{order:3;width:100%;margin:8px 0 0;justify-content:space-between;gap:12px;overflow:auto}.desktop-nav a{white-space:nowrap;font-size:.78rem}.nav-shell>.button{min-height:33px;padding:6px 10px;font-size:.77rem}.hero-grid{padding:85px 0 86px;gap:35px}.hero h1{font-size:clamp(2.5rem,10.6vw,3.4rem)}.lead{font-size:1rem}.section-pad{padding:72px 0}.section-head{display:block;margin-bottom:28px}.section-head p{margin-top:18px}.service-grid{grid-template-columns:1fr;grid-template-rows:auto;gap:10px}.service-card,.service-card:first-child{grid-row:auto;min-height:180px;padding:23px}.service-card h3,.service-card:first-child h3{font-size:1.7rem}.service-illustration,.service-card:first-child .service-illustration{height:135px;margin:14px auto}.product-row,.contact-inner{display:block}.product-row>.text-link{margin-top:25px}.article-grid{grid-template-columns:1fr}.with-action .text-link{margin-top:20px}.footer-grid{grid-template-columns:1fr 1fr;gap:32px;padding:48px 0}.footer-about{grid-column:span 2}.footer-bottom{display:block}.footer-bottom span{display:block;margin-bottom:5px}.blog-hero{padding:70px 0 42px}.blog-grid{padding:18px 0 75px}.feed-link{grid-template-columns:minmax(0,1fr) 104px;gap:18px;padding:27px 0;align-items:start}.feed-link img{width:104px;height:104px}.feed-copy h2{font-size:1.23rem}.feed-copy p{font-size:.84rem;margin:9px 0 12px}.feed-meta,.feed-author{font-size:.7rem}.article-header{padding:62px 0 34px}.article-cover{aspect-ratio:16/10}.article-layout{margin-top:38px}.article-body{font-size:1rem}.article-body .article-intro{font-size:1.13rem}.article-body h2{font-size:1.55rem}.contact-inner .button{margin-top:25px}}
@media(max-width:780px){.service-page-hero-grid{grid-template-columns:1fr;min-height:0;gap:38px}.service-page-art img{max-height:270px}.service-page-split,.service-related{grid-template-columns:1fr;gap:40px}.service-page-section-head{display:block}.service-page-section-head p{margin-top:15px}.service-step-grid{grid-template-columns:1fr;gap:29px}.service-step-number{margin-bottom:17px}}
@media(max-width:600px){.service-page-hero-grid{padding:55px 0 65px;gap:26px}.service-page-copy h1{font-size:clamp(2.5rem,10vw,3.2rem)}.service-page-copy p{font-size:1rem}.service-back{margin-bottom:25px}.service-page-art img{max-height:210px}.service-page-section{padding:70px 0}.service-page-section-head{margin-bottom:32px}.service-related-link{font-size:1.2rem}}
@media(max-width:600px){.service-card:first-child .service-illustration{height:170px;padding:15px}.service-page-art{min-height:230px;padding:20px}.article-page:before{height:460px}.article-layout{padding:30px 24px;margin-top:18px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-blue-module,.hero-blue-composition,.hero-flow,.hero-branch rect{animation:none}.hero-flow{stroke-dasharray:none}.hero-branch rect{opacity:.75}}
