@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#172d29;--green:#174f43;--lime:#dded99;--paper:#f7f8f2;--line:#dbe1d8;--muted:#62716b}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;color:var(--ink);background:var(--paper);font-family:'DM Sans',Arial,sans-serif}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:3px solid #8ca83c;outline-offset:5px}.skip{position:fixed;top:-100px;z-index:50;background:white;padding:15px}.skip:focus{top:10px}header{height:108px;max-width:1440px;margin:auto;padding:0 5.5%;display:flex;align-items:center;justify-content:space-between;gap:25px}.brand{font-family:Manrope,Arial,sans-serif;font-size:28px;letter-spacing:-1.5px;font-weight:800;white-space:nowrap}.brand>span{font-weight:400}.symbol{display:inline-block;margin-right:10px;border:1px solid var(--green);border-radius:50%;width:31px;height:31px;text-align:center;font-size:24px;font-weight:400}.brand small{display:block;font-size:8px;letter-spacing:2.4px;margin:3px 0 0 42px}nav{display:flex;gap:31px;font-size:13px}nav a:hover,.text-link:hover{color:#64813a}.talk{border-bottom:1px solid var(--ink);padding:10px 0;font-size:13px}.menu{display:none}.hero{max-width:1440px;margin:auto;display:grid;grid-template-columns:1.08fr 1fr;padding:25px 5.5% 63px;gap:45px;align-items:center}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px}h1,h2,h3,h4,p{margin:0}h1,h2,h3{font-family:Manrope,Arial,sans-serif}h1{font-size:clamp(48px,5.1vw,76px);font-weight:500;letter-spacing:-4px;line-height:1.08;margin:27px 0 24px}em{font-weight:400;font-family:Georgia,serif;color:#547746}p{font-size:15px;line-height:1.85;color:var(--muted)}.actions{display:flex;align-items:center;gap:25px;margin-top:31px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;gap:28px;background:var(--green);color:white;padding:17px 21px;font-size:12px;border-radius:4px;transition:background .2s,transform .2s}.button:hover{background:#256956;transform:translateY(-2px)}.text-link{font-size:12px;white-space:nowrap}.note{font-size:10px;color:var(--muted);padding-top:41px}.art{height:505px;border-radius:6px;background-color:#d9e6ce;background-image:linear-gradient(#ffffff25 1px,transparent 1px),linear-gradient(90deg,#ffffff25 1px,transparent 1px);background-size:57px 57px;position:relative;overflow:hidden}.orb{position:absolute;border-radius:50%;background:linear-gradient(140deg,#f3f4b5,#9bb982);width:330px;height:330px;right:-70px;top:-100px}.orbit{position:absolute;border:1px solid #6f906646;border-radius:50%;width:680px;height:290px;transform:rotate(-42deg);left:-100px;top:130px}.second{width:780px;height:380px;left:-150px;top:85px}.art-caption{position:absolute;top:31px;left:30px;font-size:9px;line-height:1.8;letter-spacing:2px}.snapshot{position:absolute;left:12%;right:12%;top:125px;background:#ffffffed;border:1px solid white;box-shadow:0 24px 50px #33553620;border-radius:9px;padding:23px 25px;transform:rotate(-3deg)}.snapshot-top{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1.3px}.snapshot-top span{color:#728969;font-size:7px}.snapshot h3{font-size:20px;letter-spacing:-.7px;margin:17px 0 16px;font-weight:500}.health{display:flex;align-items:center;padding:15px 0;gap:12px;border-top:1px solid #e7ebe4;font-size:11px}.health small{display:block;font-size:9px;color:#657460;margin-top:4px}.health b{width:30px;height:30px;border-radius:6px;background:#eff3e6;text-align:center;padding-top:5px;font-size:18px;font-weight:400}.health>span{margin-left:auto}.bars{color:#7c9861;letter-spacing:2px}.snapshot-foot{font-size:8px;border-top:1px solid #e7ebe4;padding-top:14px;display:flex;justify-content:space-between}.art-bottom{position:absolute;bottom:24px;right:25px;font-size:8px;letter-spacing:2px}.intro{border-top:1px solid var(--line);border-bottom:1px solid var(--line);max-width:1280px;margin:auto;padding:40px 0;display:grid;grid-template-columns:1fr 2fr 1.5fr;gap:35px;align-items:center}.intro h2{font-size:27px;line-height:1.3;letter-spacing:-1px}.intro p{font-size:12px}.section{max-width:1280px;margin:auto;padding:78px 0}.section-top{display:flex;justify-content:space-between;align-items:end;margin-bottom:35px}.section-top h2,h2{font-size:43px;line-height:1.18;font-weight:500;letter-spacing:-2px;margin-top:17px}.section-top>p{font-size:12px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.card{border:1px solid var(--line);border-radius:5px;padding:25px 26px 22px;background:#fffef9;display:flex;flex-direction:column;transition:transform .2s,border-color .2s}.card:hover{transform:translateY(-5px);border-color:#879b67}.featured{background:#eaf0dc}.card-top{display:flex;justify-content:space-between;font-size:9px;letter-spacing:1.5px}.card-top>span{font-size:18px}.card-art{display:flex;align-items:center;font-size:56px;line-height:1;height:114px;color:#668356;gap:30px}.card-art i{height:40px;width:100px;background:repeating-linear-gradient(0deg,transparent 0px,transparent 8px,#c5d3b1 9px,#c5d3b1 14px);border-radius:4px}.card h3{font-size:24px;font-weight:500;letter-spacing:-.8px}.card h4{font-size:12px;font-weight:500;margin:14px 0 9px}.card p{font-size:12px;line-height:1.8;margin-bottom:25px}.card-link{border-top:1px solid #d3dccb;padding-top:16px;font-size:11px;display:flex;justify-content:space-between;margin-top:auto}.learning{padding:28px 0;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:25px}.learning h3{font-size:22px;letter-spacing:-.6px;font-weight:500;margin:12px 0 5px}.learning p{font-size:12px}.journey{padding-top:10px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:42px}.steps article>span{display:block;font-family:Georgia,serif;font-size:45px;color:#6f805a;border-bottom:1px solid var(--line);padding-bottom:20px}.steps h3{font-size:19px;letter-spacing:-.5px;font-weight:500;margin:23px 0 13px}.steps p{font-size:12px;max-width:300px}.team-banner{background:var(--green);color:#f4f7ed;padding:56px 58px;display:grid;grid-template-columns:1fr 1fr;gap:75px;border-radius:5px}.team-banner p{color:#c7d8cf;font-size:13px;max-width:400px;margin:23px 0}.team-banner .eyebrow{color:#c9dfaa}.light{background:var(--lime);color:var(--green);margin-top:3px}.light:hover{background:#eaf4bc}.statement{border-left:1px solid #ffffff30;padding-left:60px;align-self:center}.statement>b{font-family:Georgia,serif;font-size:80px;line-height:.7;color:var(--lime);font-weight:400}.statement p{font-family:Georgia,serif;font-size:31px;line-height:1.5;color:#f4f7ed}.statement small{font-size:8px;letter-spacing:2px;color:#d3decf}.contact{text-align:center;padding:90px 0}.contact h2{font-size:62px;letter-spacing:-3px;margin:20px 0}.contact p{font-size:13px}.contact .actions{justify-content:center}footer{max-width:1280px;margin:auto;border-top:1px solid var(--line);padding:32px 0;display:flex;align-items:center;gap:25px;flex-wrap:wrap}footer .brand{font-size:22px}footer p{font-size:10px}footer>div{display:flex;gap:22px;margin-left:auto;font-size:11px}footer>small{width:100%;font-size:9px;color:#657460;margin-top:10px}.subhero{max-width:1280px;margin:35px auto 0;padding:65px 55px;background:#eaf0dc;border-radius:6px}.subhero h1{max-width:850px}.subhero p{max-width:620px}.details{display:grid;grid-template-columns:repeat(3,1fr);gap:35px}.details article{border-top:1px solid var(--line);padding-top:25px}.details h3{font-size:23px;margin-bottom:15px}.details p{font-size:14px}.details .text-link{display:inline-block;margin-top:20px}.body-copy{max-width:780px;margin:0 auto;padding:0 0 70px}.body-copy h2{margin-bottom:20px}.body-copy p{margin-bottom:20px}.body-copy ul{color:var(--muted);line-height:2;padding-left:20px}@media(max-width:1400px){.intro,.section,footer,.subhero{margin-left:5.5%;margin-right:5.5%}.hero{gap:32px}}@media(max-width:1000px){nav{gap:18px}.hero{gap:25px}h1{font-size:55px;letter-spacing:-3px}.art{height:475px}.snapshot{left:6%;right:6%;padding:20px}.intro{grid-template-columns:1fr 2fr}.intro p{grid-column:2}.team-banner{gap:35px;padding:40px}.statement{padding-left:35px}}@media(max-width:720px){header{height:88px;position:relative;z-index:5}.brand{font-size:24px}.brand small{font-size:6px}.talk{display:none}.menu{display:block;background:none;border:0;font:inherit;font-size:12px}nav{display:none;position:absolute;top:80px;left:0;right:0;background:var(--paper);padding:20px 6%;border-bottom:1px solid var(--line);flex-direction:column}nav.open{display:flex}.hero{grid-template-columns:1fr;padding-top:25px;padding-bottom:40px;gap:35px}h1{font-size:54px;letter-spacing:-3px;margin:22px 0}.hero p{font-size:13px}.note{padding-top:28px}.art{height:430px}.snapshot{left:10%;right:10%;top:95px}.intro{grid-template-columns:1fr;padding:30px 0;gap:20px}.intro p{grid-column:auto}.intro h2{font-size:25px}.section{padding-top:50px;padding-bottom:50px}.section-top{align-items:start;gap:25px;flex-direction:column}h2,.section-top h2{font-size:35px}.cards,.steps,.details{grid-template-columns:1fr}.card{padding:24px}.learning{align-items:start;flex-direction:column}.learning h3{font-size:20px}.steps{gap:28px}.steps p{max-width:100%}.steps article>span{font-size:35px;padding-bottom:12px}.steps h3{margin-top:17px}.team-banner{grid-template-columns:1fr;padding:32px;gap:30px}.statement{border-left:0;border-top:1px solid #ffffff30;padding:30px 0 0}.statement p{font-size:26px}.contact h2{font-size:48px}.contact{padding:65px 0}.button{font-size:11px}footer>div{width:100%;margin:0}.subhero{padding:35px 25px;margin-top:20px}.subhero h1{font-size:44px}.body-copy{padding:0 6% 50px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Portfolio presentation inspired by Mikan's clear, rounded product cards. */
.portfolio{padding-top:66px}.portfolio .section-top h2{color:#173b45}.portfolio-nav{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 28px}.portfolio-nav a{background:#e9f0e0;color:#234d3b;padding:10px 20px;border:1px solid #d9e4ca;border-radius:30px;font-size:12px;font-weight:500;transition:background .2s}.portfolio-nav a:hover{background:#d9e9bf}.portfolio-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:24px}.portfolio-card{grid-column:span 2;border:1px solid #dde5dd;border-radius:20px;background:#fff;padding:28px;display:flex;flex-direction:column;position:relative;box-shadow:0 5px 18px #173b4505;scroll-margin-top:30px;transition:transform .2s,box-shadow .2s,border-color .2s}.portfolio-card:nth-child(4){grid-column:2 / span 2}.portfolio-card:nth-child(5){grid-column:4 / span 2}.portfolio-card:hover{transform:translateY(-4px);border-color:#94b477;box-shadow:0 12px 30px #173b4510}.portfolio-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:22px}.portfolio-icon{width:52px;height:52px;display:flex;align-items:center;justify-content:center;color:#46743e;background:#edf4e5;border-radius:14px}.portfolio-icon svg{height:28px;width:28px}.portfolio-category{font-size:9px;letter-spacing:1.5px;color:#546949;font-weight:700}.portfolio-card h3{font-size:24px;font-weight:700;color:#173b45;line-height:1.25;letter-spacing:-.8px;min-height:60px}.portfolio-card h4{font-size:15px;line-height:1.55;color:#244d3b;font-weight:500;margin:14px 0 10px;min-height:47px}.portfolio-card p{font-size:13px;line-height:1.85}.portfolio-card ul{padding:0;list-style:none;margin:20px 0 25px;color:#465b50;font-size:12px;line-height:1.7}.portfolio-card li{display:flex;gap:9px;margin:8px 0}.portfolio-card li:before{content:'✓';color:#4a7740;font-weight:700}.portfolio-link{margin-top:auto;display:flex;align-items:center;justify-content:space-between;border-top:1px solid #e7ece3;padding:19px 0 0;color:#24503b;font-size:12px;font-weight:700;gap:12px}.portfolio-link span{font-size:18px}.portfolio-link:hover{color:#638744}.portfolio-bottom{margin-top:30px;padding:24px 28px;background:#edf2e6;border-radius:16px;display:flex;align-items:center;justify-content:space-between;gap:24px}.portfolio-bottom p{font-size:13px}.portfolio-bottom .button{border-radius:30px;white-space:nowrap}@media(max-width:1050px) and (min-width:721px){.portfolio-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.portfolio-card:nth-child(4){grid-column:auto / span 2}.portfolio-card:nth-child(5){grid-column:2 / span 2}}@media(max-width:720px){.portfolio-grid{grid-template-columns:minmax(0,1fr);gap:18px}.portfolio-card,.portfolio-card:nth-child(4),.portfolio-card:nth-child(5){grid-column:1}.portfolio-card h3,.portfolio-card h4{min-height:0}.portfolio-card{padding:25px}.portfolio-bottom{align-items:flex-start;flex-direction:column}.portfolio-nav{display:flex;position:static;background:none;border:0;padding:0;flex-direction:row}.portfolio-nav a{padding:9px 16px}.portfolio{padding-top:45px}} 

header .logo-brand{display:flex;align-items:center;flex-shrink:0}header .logo-brand img{display:block;width:220px;height:auto;max-width:100%}@media(max-width:720px){header .logo-brand img{width:185px}}
/* Compact portfolio cards: let content determine height without filler gaps. */
.portfolio-grid{align-items:start;gap:18px}.portfolio-card{padding:20px 22px}.portfolio-card-top{margin-bottom:12px}.portfolio-icon{width:42px;height:42px;border-radius:11px}.portfolio-icon svg{width:25px;height:25px}.portfolio-card h3{min-height:0;font-size:23px;line-height:1.2}.portfolio-card h4{min-height:0;margin:8px 0 7px;font-size:14px;line-height:1.4}.portfolio-card p{line-height:1.65}.portfolio-card ul{margin:10px 0 12px;line-height:1.5}.portfolio-card li{margin:5px 0}.portfolio-link{margin-top:0;padding-top:12px}@media(max-width:720px){.portfolio-card{padding:18px 20px}.portfolio-grid{gap:14px}}

.hero-support{margin-top:16px}.intro.intro-short{grid-template-columns:1fr 3.5fr}@media(max-width:720px){.intro.intro-short{grid-template-columns:1fr}}

.hero-statements{display:flex;flex-direction:column;gap:16px}.hero-statements p{margin:0}
/* Exactly 15px between the hero and portfolio title, on all screen sizes. */
.hero{padding-bottom:0}.section.portfolio{padding-top:15px}.portfolio .section-top{align-items:flex-start}
.hero h1{font-size:25px;letter-spacing:-.5px;line-height:1.3;color:teal}.hero h1 em{color:inherit}

.hero h1{white-space:nowrap}@media(max-width:480px){.hero h1{font-size:clamp(14px,4.5vw,21px);letter-spacing:-.4px}}
/* Give the full-size headline enough room within its own column. */
.hero{grid-template-columns:minmax(540px,1.25fr) minmax(0,1fr)}.hero>div:first-child{min-width:0}.hero h1{width:100%;font-size:25px}@media(max-width:1050px){.hero{grid-template-columns:minmax(0,1fr)}.hero-art,.hero .art{max-width:600px;width:100%;justify-self:center}}@media(max-width:600px){.hero h1{font-size:clamp(14px,4.5vw,25px)}}

.hero .diagram-container{height:auto;background:#fff;overflow:hidden;border-radius:6px}.diagram-container img{display:block;width:100%;height:auto;object-fit:contain}

.portfolio-card h3{font-size:20px}.section.portfolio{padding-top:25px}
.portfolio-card h3{font-size:17px}
/* Rounded diagram and larger interactive labels. */
.hero .diagram-container,.diagram-container img{border-radius:24px}.button,.text-link,.portfolio-link{font-size:15px}.card-link{font-size:14px}header nav{font-size:16px}.talk{font-size:16px}footer>div{font-size:14px}.menu{font-size:15px}.portfolio-nav a{font-size:15px}@media(max-width:720px){.button{font-size:14px}}

.portfolio-card-top h3{text-align:right;flex:1;min-width:0}.portfolio-card-top .portfolio-icon{flex-shrink:0}

/* Add 10px to each card at every column count. */
.portfolio-grid{width:calc(100% + 30px);margin-left:-15px}.portfolio-bottom .button{border-radius:4px}.portfolio-bottom .button,.contact .button{gap:28px;padding:17px 21px}@media(max-width:1050px) and (min-width:721px){.portfolio-grid{width:calc(100% + 20px);margin-left:-10px}}@media(max-width:720px){.portfolio-grid{width:calc(100% + 10px);margin-left:-5px}}

.portfolio-bottom p{font-size:16px}.journey .section-top h2{font-family:Manrope,Arial,sans-serif;font-size:17px;font-weight:700;color:#173b45;line-height:1.2;letter-spacing:-.8px}

.section.bottom-cta{padding-top:0;padding-bottom:25px}.bottom-cta .portfolio-bottom{margin-top:0}
/* Exactly 25px between portfolio cards and journey title. */
.section.portfolio{padding-bottom:0}.section.journey{padding-top:25px}
.journey .section-top{margin-bottom:15px}@media(max-width:720px){.journey .section-top{display:block}.journey .section-top>.text-link{display:block;margin-top:15px}}

.section.journey{padding-bottom:0}.section.bottom-cta{padding-top:25px}

.bottom-cta .portfolio-bottom{border:2px solid #fff}@media(max-width:720px){.journey .section-top>.button{margin-top:15px}}

.portfolio-grid{width:calc(100% + 60px);margin-left:-30px}footer>small{font-size:14px}.header-talk{white-space:nowrap}@media(max-width:1050px) and (min-width:721px){.portfolio-grid{width:calc(100% + 40px);margin-left:-20px}header{gap:15px}header nav{gap:15px}}@media(max-width:720px){.portfolio-grid{width:calc(100% + 20px);margin-left:-10px}.header-talk{display:none}}
/* Green buttons use 10px padding on every side, across all pages and breakpoints. */
body .button:not(.light){padding:10px}
/* Reduce logo height by 10px while retaining its original proportions. */
header .logo-brand img{width:auto;height:calc(220px * 132 / 410 - 10px)}footer{flex-wrap:nowrap;justify-content:space-between}footer>small{width:auto;flex:1;white-space:nowrap;margin-top:0;order:-1}footer>div{width:auto;flex-shrink:0;margin-left:auto}@media(max-width:720px){header .logo-brand img{height:calc(185px * 132 / 410 - 10px)}footer{gap:12px;flex-wrap:wrap}footer>small{flex:1 1 auto}footer>div{width:auto;margin-left:auto}}

.hero h1{font-style:italic}.steps article>span{font-size:40px}@media(max-width:720px){.steps article>span{font-size:30px}}

.portfolio-grid{width:calc(100% + 30px);margin-left:-15px}@media(max-width:1050px) and (min-width:721px){.portfolio-grid{width:calc(100% + 20px);margin-left:-10px}}@media(max-width:720px){.portfolio-grid{width:calc(100% + 10px);margin-left:-5px}}
.steps article>span{font-size:35px}@media(max-width:720px){.steps article>span{font-size:25px}}

.steps article>span{font-size:30px}header #nav,header #nav.open,header .menu{display:none}@media(max-width:720px){.steps article>span{font-size:20px}}

header #nav{display:flex}header #nav a[href="index.html#solutions"]{display:none}@media(max-width:720px){header #nav{display:none}header #nav.open{display:flex}header .menu{display:block}}

.steps h3{font-size:16px}
.steps p{font-size:14px}
