@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&family=Playfair+Display:ital,wght@0,600;0,700;1,600;1,700&display=swap');
:root{--ink:#112821;--green:#0d4a3c;--lime:#d6ed53;--paper:#f7f8f3;--mist:#e8eee8;--muted:#5b6b64;--line:#cfd8d0;--max:1200px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,Arial,sans-serif;font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}.site-header{height:92px;max-width:var(--max);margin:auto;padding:0 28px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:block;width:238px;height:55px;overflow:hidden}.brand img{width:238px;height:112px;object-fit:contain;object-position:center;mix-blend-mode:multiply;transform:scale(1.04)}nav{display:flex;align-items:center;gap:28px;font-size:.88rem;font-weight:700}nav>a:not(.button){position:relative;padding:8px 0}nav>a[aria-current="page"]:after{content:"";height:2px;background:var(--green);position:absolute;left:0;right:0;bottom:0}.button{background:var(--green);color:#fff;padding:15px 22px;display:inline-flex;align-items:center;gap:18px;font-size:.88rem;font-weight:800;transition:.2s}.button:hover{background:#17604f;transform:translateY(-2px)}.button span,.services a span{font-size:1.2em}.button.small{padding:10px 16px}.menu{display:none;border:0;background:none;color:var(--ink);font:700 .85rem Manrope}.hero{max-width:var(--max);min-height:590px;margin:auto;padding:70px 28px 88px;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;overflow:hidden}.eyebrow{font:500 .7rem 'DM Mono',monospace;letter-spacing:.13em;text-transform:uppercase;color:#4f6259;margin:0 0 20px}.hero h1,.page-hero h1{font-size:clamp(3.25rem,6.4vw,6.2rem);line-height:.99;letter-spacing:-.065em;margin:0 0 28px;max-width:720px}.hero h1 em,.page-hero h1 em{font-family:'Playfair Display',serif;font-weight:600;letter-spacing:-.07em}.lead{font-size:1.13rem;line-height:1.65;max-width:540px;color:#395047;margin:0}.actions{display:flex;align-items:center;gap:25px;margin-top:39px}.text-link{font-size:.9rem;font-weight:800;border-bottom:1px solid var(--ink);padding-bottom:2px}.hero-art{height:430px;position:relative;margin-left:10px;background:var(--green);overflow:hidden}.arc{position:absolute;width:550px;height:550px;border:56px solid var(--lime);border-radius:50%;top:-145px;right:-190px}.hero-card{position:absolute;left:40px;bottom:40px;color:#fff;width:260px}.hero-card span,.number,.values span,.service-list>article>span{font:500 .75rem 'DM Mono',monospace;color:var(--lime)}.hero-card strong{font-size:1.7rem;line-height:1.18;display:block;margin:16px 0 10px}.hero-card p{margin:0;color:#d2e0d9;font-size:.9rem}.intro{max-width:var(--max);padding:102px 28px 72px;margin:auto;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;column-gap:7%;align-items:start}.intro .eyebrow{grid-column:1/-1}.intro h2,.promise h2,.contact h2,.about-grid h2{font-size:clamp(2.2rem,4.3vw,4.4rem);line-height:1.06;letter-spacing:-.055em;margin:0}.intro>p:last-child{max-width:460px;font-size:1.05rem;color:var(--muted);margin:10px 0}.services{max-width:var(--max);margin:auto;padding:0 28px 110px;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line)}.services article{background:var(--paper);padding:34px 32px 40px;min-height:315px;display:flex;flex-direction:column}.number{margin-bottom:auto}.services h3,.values h3{font-size:1.4rem;line-height:1.2;letter-spacing:-.035em;margin:36px 0 13px}.services p{font-size:.93rem;color:var(--muted);margin:0 0 20px}.services a{font-size:.82rem;font-weight:800;margin-top:auto}.promise{background:var(--mist);padding:100px max(28px,calc((100vw - var(--max))/2));display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:end}.promise p:last-child{font-size:1.12rem;color:#3d5147;max-width:430px;margin:0}.contact{background:var(--green);color:#fff;padding:74px max(28px,calc((100vw - var(--max))/2));display:flex;justify-content:space-between;align-items:center;gap:30px}.contact .eyebrow{color:var(--lime)}.contact h2{max-width:570px}.contact p:not(.eyebrow){color:#d5e1da;margin:12px 0 0}.button.light{background:var(--lime);color:var(--ink);white-space:nowrap}.button.light:hover{background:#e4f68a}footer{max-width:var(--max);margin:auto;padding:48px 28px 28px;display:grid;grid-template-columns:1fr auto;gap:35px}.footer-brand{font-weight:800;font-size:1.4rem;letter-spacing:-.05em}.footer-brand span{font-size:.76rem;letter-spacing:0;margin-left:7px}.footer-brand+p{color:var(--muted);font-size:.82rem;margin:7px 0}.footer-links{display:flex;gap:22px;font-size:.8rem;font-weight:700;align-items:start}.copyright{grid-column:1/-1;border-top:1px solid var(--line);padding-top:20px;margin:0;font:400 .68rem 'DM Mono',monospace;color:#77847d}.page-hero{max-width:var(--max);padding:90px 28px 115px;margin:auto;border-top:1px solid var(--line)}.page-hero .lead{margin-top:30px}.service-list{max-width:var(--max);margin:auto;padding:0 28px 110px}.service-list article{border-top:1px solid var(--line);padding:42px 0 50px;display:grid;grid-template-columns:20% 1fr;gap:20px}.service-list h2{font-size:clamp(1.75rem,3.4vw,3.05rem);line-height:1.08;letter-spacing:-.05em;margin:0 0 18px}.service-list p{max-width:650px;color:var(--muted);margin:0}.service-list ul{list-style:none;padding:0;margin:24px 0 0;display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:9px 20px;font-size:.88rem;font-weight:700}.service-list li:before{content:'↗';color:var(--green);margin-right:9px}.about-grid{max-width:var(--max);padding:0 28px 115px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:8%}.about-grid p{font-size:1.08rem;color:#3c5148;margin:0 0 20px}.values{background:var(--mist);padding:85px max(28px,calc((100vw - var(--max))/2));display:grid;grid-template-columns:repeat(3,1fr);gap:45px}.values article{border-top:2px solid var(--green);padding-top:22px}.values h3{margin:28px 0 12px}.values p{font-size:.93rem;color:var(--muted);margin:0}.legal{max-width:850px;margin:auto;padding:75px 28px 110px;border-top:1px solid var(--line)}.legal h1{font-size:clamp(2.8rem,5vw,4.5rem);line-height:1;letter-spacing:-.06em;margin:0 0 55px}.legal h2{font-size:1.35rem;margin:36px 0 10px}.legal p,.legal li{color:#405249}.legal .notice{background:#fff3d6;border-left:4px solid #d1a83d;padding:17px 20px;color:#5a491e;font-size:.92rem}.legal a{text-decoration:underline}.legal ul{padding-left:20px}
@media(max-width:760px){.site-header{height:76px;padding:0 20px}.brand{width:185px;height:46px}.brand img{width:185px;height:88px}nav{display:none;position:absolute;top:76px;left:0;right:0;background:var(--paper);padding:20px;z-index:3;border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-start;gap:12px}.site-header.open nav{display:flex}.menu{display:block}.hero{grid-template-columns:1fr;padding:58px 20px 0;min-height:auto}.hero h1,.page-hero h1{font-size:3.5rem}.hero-art{height:280px;margin:55px -20px 0}.hero-card{left:25px;bottom:28px}.intro,.promise,.about-grid{grid-template-columns:1fr;padding-left:20px;padding-right:20px}.intro{padding-top:70px;padding-bottom:55px;gap:25px}.services{grid-template-columns:1fr;padding:0 20px 65px}.services article{min-height:245px}.promise{padding-top:70px;padding-bottom:70px;gap:25px}.contact{padding:54px 20px;display:block}.contact .button{margin-top:30px}.page-hero{padding:63px 20px 75px}.service-list{padding:0 20px 65px}.service-list article{grid-template-columns:1fr;padding:30px 0}.service-list ul{grid-template-columns:1fr}.about-grid{padding-bottom:65px;gap:28px}.values{grid-template-columns:1fr;padding:65px 20px;gap:30px}footer{padding:40px 20px 25px;grid-template-columns:1fr}.footer-links{grid-row:2;flex-wrap:wrap}.copyright{grid-row:3}.actions{flex-wrap:wrap}.hero h1,.page-hero h1{letter-spacing:-.07em}}

/* Brand and hero refinements */
.brand{width:250px;height:64px;overflow:visible}.brand img{display:block;width:100%;height:100%;object-fit:contain;object-position:center;mix-blend-mode:multiply;transform:none}.footer-brand{display:block;width:255px;height:68px;background:url('Logo Header Banner.png') center/contain no-repeat;mix-blend-mode:multiply;font-size:0;letter-spacing:0}.footer-brand span{font-size:0}.hero-art{background:#e0f0d1;border:1px solid #c7d8c5}.hero-orbit{position:absolute;border:1px solid #86a98f;border-radius:50%}.orbit-one{width:470px;height:470px;right:-135px;top:-110px}.orbit-two{width:300px;height:300px;right:-45px;top:-24px;border-color:#6d987a}.hero-symbol{position:absolute;left:38px;top:40px;display:flex;align-items:center;color:var(--green);font-size:clamp(4.4rem,8vw,7.9rem);line-height:.8;letter-spacing:-.12em;font-weight:800}.hero-symbol b{font-family:'Playfair Display',serif;font-weight:600;font-style:italic;color:#709a67;font-size:.7em;margin:0 .02em}.hero-line{position:absolute;left:40px;right:40px;bottom:93px;border-top:1px solid #71936f}.hero-art>p{position:absolute;left:40px;bottom:28px;margin:0;font:500 .7rem/1.55 'DM Mono',monospace;letter-spacing:.1em;text-transform:uppercase;color:#315c3d}.site-loader{position:fixed;inset:0;z-index:20;background:var(--paper);display:grid;place-items:center;transition:opacity .55s ease,visibility .55s ease}.site-loader.hidden{opacity:0;visibility:hidden}.loader-mark{width:74px;height:74px;border:2px solid var(--green);border-radius:50%;display:grid;place-items:center;position:relative;animation:loader-turn 1.1s linear infinite}.loader-mark:before{content:'';position:absolute;width:15px;height:15px;background:var(--lime);border-radius:50%;top:-7px}.loader-mark span{font:800 1.5rem Manrope;color:var(--green);letter-spacing:-.12em}@keyframes loader-turn{to{transform:rotate(360deg)}}
@media(max-width:760px){.brand{width:195px;height:52px}.brand img{width:100%;height:100%}.hero-symbol{left:27px;top:35px}.hero-line{left:28px;right:28px;bottom:75px}.hero-art>p{left:28px;bottom:20px}.footer-brand{width:220px;height:60px}}

/* New editorial hero */
.footer-brand{background-position:left center}.hero-reimagined{max-width:none;min-height:640px;padding:96px max(28px,calc((100vw - var(--max))/2));background:var(--green);color:#fff;display:block;position:relative;overflow:hidden}.hero-reimagined .hero-copy{position:relative;z-index:2;max-width:800px}.hero-reimagined .eyebrow{color:var(--lime)}.hero-reimagined h1{font-size:clamp(3.8rem,7.6vw,7.8rem);max-width:900px;margin-bottom:30px}.hero-reimagined .lead{color:#d5e4da;max-width:560px}.hero-reimagined .button{background:var(--lime);color:var(--ink)}.hero-reimagined .text-link{border-color:#fff}.hero-words{position:absolute;right:max(28px,calc((100vw - var(--max))/2));top:80px;display:flex;flex-direction:column;align-items:flex-end;gap:0;color:rgba(255,255,255,.12);font-size:clamp(3.8rem,8vw,9rem);font-weight:800;line-height:.78;letter-spacing:-.09em}.hero-words span:nth-child(2){color:rgba(214,237,83,.45);margin-right:46px}.hero-route{position:absolute;right:14%;bottom:-220px;width:590px;height:590px;border:1px solid rgba(214,237,83,.65);border-radius:50%}.hero-route:before{content:'';position:absolute;inset:68px;border:1px solid rgba(255,255,255,.18);border-radius:50%}.hero-route i{position:absolute;width:18px;height:18px;top:126px;left:68px;background:var(--lime);border-radius:50%;box-shadow:0 0 0 14px rgba(214,237,83,.14)}.hero-route b{position:absolute;width:18px;height:18px;bottom:85px;right:62px;background:#fff;border-radius:50%}.hero-index{position:absolute;left:max(28px,calc((100vw - var(--max))/2));bottom:33px;margin:0;color:#b7cfc0;font:500 .68rem 'DM Mono',monospace;letter-spacing:.13em}.hero-reimagined .actions{position:relative;z-index:3}@media(max-width:760px){.hero-reimagined{min-height:610px;padding:72px 20px 76px}.hero-reimagined h1{font-size:3.9rem}.hero-words{right:20px;top:auto;bottom:125px;font-size:3.8rem}.hero-words span:nth-child(2){margin-right:20px}.hero-route{width:390px;height:390px;right:-140px;bottom:-235px}.hero-index{left:20px;bottom:24px}}

@media(hover:hover){nav>a:not(.button){transition:color .22s ease}nav>a:not(.button):not([aria-current="page"]):after{content:'';position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--lime);transform:scaleX(0);transform-origin:right;transition:transform .28s ease}nav>a:not(.button):hover{color:var(--green)}nav>a:not(.button):hover:after{transform:scaleX(1);transform-origin:left}.button{transition:transform .22s ease,background .22s ease,box-shadow .22s ease}.button:hover{box-shadow:0 11px 22px rgba(13,74,60,.18)}.button span{display:inline-block;transition:transform .22s ease}.button:hover span{transform:translateX(5px)}.text-link{transition:color .22s ease,border-color .22s ease}.text-link:hover{color:#6f9764;border-color:#6f9764}.services article{transition:transform .28s cubic-bezier(.2,.8,.2,1),box-shadow .28s ease,background .28s ease}.services article:hover{transform:translateY(-10px);background:#fff;box-shadow:0 18px 30px rgba(17,40,33,.11);position:relative;z-index:1}.services article .number{transition:color .25s ease,transform .25s ease}.services article:hover .number{color:var(--green);transform:translateX(5px)}.services a span{display:inline-block;transition:transform .22s ease}.services a:hover span{transform:translateX(6px)}.values article{transition:transform .25s ease,border-color .25s ease}.values article:hover{transform:translateY(-7px);border-color:#8eaf43}.service-list article{transition:padding-left .25s ease,background .25s ease}.service-list article:hover{padding-left:16px;background:rgba(214,237,83,.12)}.footer-brand{transition:transform .25s ease,opacity .25s ease}.footer-brand:hover{transform:translateX(7px);opacity:.78}.footer-links a{position:relative;padding-bottom:4px;transition:color .22s ease}.footer-links a:after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--green);transform:scaleX(0);transform-origin:right;transition:transform .25s ease}.footer-links a:hover{color:var(--green)}.footer-links a:hover:after{transform:scaleX(1);transform-origin:left}.hero-reimagined{transition:background .4s ease}.hero-reimagined:hover{background:#104f41}.hero-reimagined .hero-words span{transition:transform .5s cubic-bezier(.2,.8,.2,1),color .4s ease}.hero-reimagined:hover .hero-words span:first-child{transform:translateX(-12px)}.hero-reimagined:hover .hero-words span:nth-child(2){transform:translateX(-28px);color:rgba(214,237,83,.7)}.hero-reimagined:hover .hero-words span:last-child{transform:translateX(-8px)}.hero-route{transition:transform .7s cubic-bezier(.2,.8,.2,1)}.hero-reimagined:hover .hero-route{transform:rotate(15deg) scale(1.04)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* Scroll reveal effects */
.js .reveal{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(.2,.7,.2,1) var(--reveal-delay,0ms),transform .7s cubic-bezier(.2,.7,.2,1) var(--reveal-delay,0ms)}.js .reveal.is-visible{opacity:1;transform:translateY(0)}.js .services article.reveal{transform:translateY(34px) scale(.98)}.js .services article.reveal.is-visible{transform:translateY(0) scale(1)}.js .service-list article.reveal{transform:translateX(-25px)}.js .service-list article.reveal.is-visible{transform:translateX(0)}.hero-route{will-change:transform}@media(prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none;transition:none}}

@media(max-width:760px){.hero-reimagined{padding-left:30px;padding-right:30px}.hero-reimagined h1{font-size:3.52rem}.hero-reimagined .lead{font-size:1.04rem}.hero-index{left:30px}}

/* Service-site loading sequence: opening roller gate */
.loader-gate{width:min(510px,82vw);height:225px;position:relative;overflow:hidden;background:#eef1e9;border:1px solid #cbd7cc;box-shadow:0 18px 45px rgba(17,40,33,.15)}.gate-logo{position:absolute;inset:0;display:grid;place-content:center;text-align:center;z-index:1}.gate-logo img{width:265px;max-width:58vw;height:86px;object-fit:contain;mix-blend-mode:multiply}.gate-logo p{margin:7px 0 0;color:var(--green);font:500 .66rem 'DM Mono',monospace;letter-spacing:.13em;text-transform:uppercase;opacity:0;animation:status-in .32s ease 1.25s forwards}.gate-logo p span{display:inline-block;width:8px;height:8px;background:var(--lime);border-radius:50%;margin-right:8px;box-shadow:0 0 0 5px rgba(214,237,83,.25)}.gate-panel{position:absolute;top:0;bottom:0;width:50%;z-index:2;background:linear-gradient(135deg,#0c4035,#12604d);display:flex;flex-direction:column;justify-content:space-around;padding:19px 0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);animation-duration:1.15s;animation-delay:.32s;animation-fill-mode:forwards;animation-timing-function:cubic-bezier(.65,0,.25,1)}.gate-panel i{height:1px;background:rgba(214,237,83,.72);display:block;margin:0 22px}.gate-left{left:0;border-right:1px solid rgba(214,237,83,.55);animation-name:gate-left-open}.gate-right{right:0;border-left:1px solid rgba(214,237,83,.55);animation-name:gate-right-open}.gate-left:after,.gate-right:after{content:'S&P';position:absolute;top:15px;color:rgba(255,255,255,.35);font:700 .62rem 'DM Mono',monospace;letter-spacing:.12em}.gate-left:after{left:19px}.gate-right:after{right:19px}@keyframes gate-left-open{to{transform:translateX(-101%)}}@keyframes gate-right-open{to{transform:translateX(101%)}}@keyframes status-in{to{opacity:1}}@media(max-width:760px){.loader-gate{height:190px;width:min(390px,86vw)}.gate-logo img{width:225px;height:72px}.gate-panel{padding:15px 0}.gate-panel i{margin:0 14px}}

/* Fullscreen site-gate presentation */
.loader-gate{width:100vw;height:100vh;height:100dvh;border:0;box-shadow:none;background:#e4e7e3}.gate-logo img{width:465px;max-width:76vw;height:142px}.gate-logo p{font-size:.72rem;margin-top:14px}.gate-panel{padding:7vh 0;background:repeating-linear-gradient(0deg,#979da0 0,#aeb3b4 17px,#858b8e 19px,#c2c6c6 21px);box-shadow:inset 0 0 65px rgba(0,0,0,.24),inset 0 0 0 1px rgba(255,255,255,.45)}.gate-panel i{margin:0 9vw;background:rgba(51,57,59,.28);box-shadow:0 1px rgba(255,255,255,.48)}.gate-left{border-right:3px solid #596063}.gate-right{border-left:3px solid #596063}.gate-left:after,.gate-right:after{top:5vh;font-size:.72rem;color:rgba(31,37,38,.45);text-shadow:0 1px rgba(255,255,255,.35)}.gate-left:after{left:5vw}.gate-right:after{right:5vw}@media(max-width:760px){.loader-gate{width:100vw;height:100vh;height:100dvh}.gate-logo img{width:330px;max-width:79vw;height:102px}.gate-logo p{font-size:.57rem}.gate-panel{padding:6vh 0}.gate-panel i{margin:0 7vw}}

@media(max-width:760px){.site-header .brand img{transform:scale(1.2) translateX(-30%);transform-origin:left center}.site-header .brand{margin-left:-2px}}

/* Larger brand mark and logo loading state */
.brand{width:285px}.brand img{transform:scale(1.16);transform-origin:left center}.loader-mark{width:278px;height:132px;border:0;border-radius:0;display:block;animation:none;text-align:center}.loader-mark:before{display:none}.loader-mark img{width:100%;height:68px;object-fit:contain;object-position:center;mix-blend-mode:multiply;animation:logo-arrive .55s cubic-bezier(.2,.8,.2,1) both}.loader-services{height:23px;position:relative;margin-top:9px;overflow:hidden;font:500 .64rem 'DM Mono',monospace;letter-spacing:.11em;text-transform:uppercase;color:var(--green)}.loader-services:before,.loader-services:after{content:'';position:absolute;top:8px;width:34px;border-top:1px solid #b9c8bc}.loader-services:before{left:0}.loader-services:after{right:0}.loader-services span{position:absolute;left:0;right:0;opacity:0;animation:service-cycle 1.55s ease-in-out both}.loader-services span:nth-child(1){animation-delay:.22s}.loader-services span:nth-child(2){animation-delay:.67s}.loader-services span:nth-child(3){animation-delay:1.12s}.loader-mark i{display:block;width:100%;height:3px;background:linear-gradient(90deg,var(--lime) 0 18%,rgba(13,74,60,.14) 18% 100%);margin-top:12px;transform-origin:left;animation:load-line 1.6s cubic-bezier(.2,.8,.2,1) both}@keyframes logo-arrive{from{opacity:0;transform:translateY(11px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes load-line{from{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes service-cycle{0%,100%{opacity:0;transform:translateY(9px)}18%,62%{opacity:1;transform:translateY(0)}78%{opacity:0;transform:translateY(-8px)}}@media(max-width:760px){.brand{width:220px;height:58px}.brand img{transform:scale(1.2)}.loader-mark{width:230px}.loader-mark img{height:62px}.loader-services{font-size:.58rem}}
