/* Recording fidelity: desktop measurements use the visible website, excluding
   the recording's grey frame. The recording takes precedence over live changes. */
@font-face{font-family:Inter;src:url('/inter-latin.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
:root{--paper:#fff;--mint:#00b697;--mint-text:#70c9b4;--line:#e6e6e6;--gutter:min(46px,2.84vw);--unit:min(16px,1vw);--section-space:64px}
body{font-family:Inter,Arial,sans-serif}
html{scroll-padding-top:88px}
h1,h2,h3,.card-title{font-family:Mundial,Arial,sans-serif}
.section-pad,.header-inner{max-width:1640px}
.btn{min-height:0;font-family:Inter,Arial,sans-serif;font-size:var(--unit);font-weight:300;line-height:1.2;padding:calc(var(--unit)*.9375) calc(var(--unit)*1.875);gap:calc(var(--unit)*.5)}
.btn span{font-size:1em}
.btn:hover{transform:none}
.btn-white:hover,.btn-light:hover{background:#fff;color:var(--ink);opacity:.8}
.header-inner{height:88px}
.brand{width:auto;flex-shrink:0}
.brand img{height:44px;width:auto}
.desktop-nav{gap:38px;left:50%}
.nav-trigger,.nav-link{font-family:Inter,Arial,sans-serif;font-size:13px;font-weight:500;letter-spacing:0;padding:20px 0}
.chevron{font-size:18px}
.header-actions{gap:24px}
.header-phone{font-size:14px;font-weight:500;gap:8px}
.header-cta{font-family:Inter,Arial,sans-serif;font-size:14px;font-weight:400;line-height:1.2;padding:15px 24px}
.header-cta:hover{background:#fff;opacity:.8}
.site-header.scrolled,.site-header.menu-open{background:#fff;box-shadow:none;backdrop-filter:none;color:#161616}
.site-header.scrolled .header-inner:after{border-color:transparent}
.site-header.scrolled .header-cta:hover{background:var(--ink);color:white;opacity:.8}
.nav-dropdown{top:100%;background:white;color:var(--text);padding:8px 20px;min-width:245px;box-shadow:0 15px 30px #00000012}
.nav-dropdown a,.nav-dropdown button{font-family:Inter,Arial,sans-serif;font-size:14px;color:var(--text);border-color:#e6e6e6;font-weight:400}
.nav-dropdown a:hover,.nav-dropdown button:hover{color:#008e79}
.hero{height:100svh;min-height:560px;max-height:none}
.hero-media{will-change:auto}
.hero-video{object-position:center}
.hero-shade{background:linear-gradient(180deg,#00151b36 0%,#00151b0d 35%,#00151b33 65%,#0010168c 100%)}
.hero-content{bottom:calc(var(--unit)*7.4)}
.hero h1{font-size:calc(var(--unit)*3.75);line-height:1.06944;letter-spacing:-.01em;max-width:none;margin-bottom:calc(var(--unit)*1.6)}
.hero-content p{font-family:Inter,Arial,sans-serif;font-weight:500;font-size:calc(var(--unit)*1.05);line-height:1.35;max-width:calc(var(--unit)*36.5);margin-bottom:calc(var(--unit)*1.875)}
.hero-buttons{align-items:center;gap:var(--unit)}
.hero-secondary{font-family:Inter,Arial,sans-serif;font-size:var(--unit);font-weight:400;display:inline-flex;align-items:center;gap:7px;padding:12px 0 12px 5px}
.hero-secondary:hover{opacity:.75}
.hero-bottom{bottom:calc(var(--unit)*2.1875);padding-top:calc(var(--unit)*.875)}
.scroll-explore{font-family:Inter,Arial,sans-serif;font-size:calc(var(--unit)*.6);letter-spacing:.12em;color:#ffffff80}
.hero-bottom-right{display:flex;align-items:center;gap:18px}
.hero-bottom-right>a{font-size:calc(var(--unit)*.6);letter-spacing:.06em;color:#ffffff80;text-transform:uppercase}
.motion-toggle{font-size:10px;color:#ffffff80}
.motion-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.hero-content h1,.hero-content p,.hero-buttons{animation-duration:1s}
.services{padding-top:var(--section-space);padding-bottom:var(--section-space);padding-right:0;max-width:1640px}
.services-heading{padding-left:18.25%;padding-right:var(--gutter)}
.services-heading .eyebrow{font-family:Inter,Arial,sans-serif;font-size:calc(var(--unit)*.55);font-weight:300;letter-spacing:0;word-spacing:calc(var(--unit)*3);margin-bottom:calc(var(--unit)*2)}
.services-heading-row{margin-bottom:calc(var(--unit)*2.25);gap:20px}
.services-heading-row h2{font-size:calc(var(--unit)*3.3);line-height:1.09;letter-spacing:-.04em;max-width:720px}
.services-heading-row h2 em{color:inherit}
.services-heading-row .btn{margin:0}
.services-layout{grid-template-columns:18.25% 81.75%}
.services-aside{font-family:Inter,Arial,sans-serif;font-size:calc(var(--unit)*.85);line-height:1.5;padding-right:calc(var(--unit)*3)}
.services-aside-small,.rail-counter{display:none}
.rail-controls{gap:5px;padding-bottom:calc(var(--unit)*1.75)}
.square-control{width:calc(var(--unit)*1.65);height:calc(var(--unit)*1.65);font-size:calc(var(--unit)*1.05)}
.service-rail{gap:calc(var(--unit)*.625);padding-right:var(--gutter)}
.service-item{flex:0 0 calc((min(100vw,1640px) - 2*var(--gutter))*.2644);min-width:0;scroll-snap-align:start}
.service-card{width:100%;height:auto;min-width:0;aspect-ratio:.79;display:block;scroll-snap-align:none}
.service-card img{filter:none}
.card-arrow{width:calc(var(--unit)*1.8);height:calc(var(--unit)*1.8);font-size:calc(var(--unit)*.8)}
.card-shade{background:linear-gradient(180deg,transparent 45%,#002d331a 65%,#002d338c 100%)}
.card-body{left:calc(var(--unit)*.9);right:calc(var(--unit)*.9);bottom:calc(var(--unit)*1)}
.card-number{display:none}
.card-title{font-family:Inter,Arial,sans-serif;font-size:calc(var(--unit)*1.45);font-weight:500;letter-spacing:-.025em;line-height:1.15}
.card-title br{display:none}
.card-title br:after{content:' '}
.card-description{font-size:calc(var(--unit)*.75);line-height:1.4;color:#ffffffa6;max-width:95%}
.service-card:hover .card-description,.service-card:focus-visible .card-description{margin-top:calc(var(--unit)*.6)}
.service-summary{font-family:Inter,Arial,sans-serif;display:block;color:#8e9290;font-size:calc(var(--unit)*.65);line-height:1.4;padding-top:calc(var(--unit)*.7)}
.rail-progress{display:none}
.approach{padding-top:0;padding-bottom:0}
.approach-heading{padding:0 0 36px;margin-bottom:48px}
.approach-heading h2{font-size:calc(var(--unit)*4.5);line-height:1.07;letter-spacing:-.035em}
.approach-intro{font-family:Inter,Arial,sans-serif;margin:0 0 56px 9.5%;max-width:calc(var(--unit)*24);font-size:calc(var(--unit)*1.25);line-height:1.3;color:#777}
.approach-intro .btn{margin-top:calc(var(--unit)*1);font-size:calc(var(--unit)*.85);padding:calc(var(--unit)*.7) calc(var(--unit)*1.2)}
.story-row{grid-template-columns:58.9% 35.4%;gap:5.7%;align-items:start;margin-top:0;margin-bottom:var(--section-space)}
.story-large,.story-three .story-large{margin-top:0;aspect-ratio:1/1;transform-origin:center;will-change:transform;overflow:hidden}
.story-large video{width:100%;height:100%;aspect-ratio:1/1;object-fit:cover;filter:none}
.story-side,.story-three .story-side{padding:0}
.story-image{transform-origin:center;will-change:transform}
.story-image.portrait,.story-image.square{aspect-ratio:1.03}
.story-image img{filter:none}
.story-image:hover img{transform:none}
.story-one .story-side{margin-top:calc(var(--unit)*-9.5)}
.story-one .story-image{margin-top:0}
.story-caption{padding-top:calc(var(--unit)*.8)}
.story-caption .eyebrow{font-size:calc(var(--unit)*.5);letter-spacing:0;color:#858d89;margin-bottom:calc(var(--unit)*.3)}
.story-caption h3{font-family:Mundial,Arial,sans-serif;font-size:calc(var(--unit)*1.65);font-weight:400;line-height:1.2;letter-spacing:-.02em;margin-bottom:calc(var(--unit)*.75)}
.story-caption h3 br{display:none}
.story-caption p{font-family:Inter,Arial,sans-serif;font-size:calc(var(--unit)*.875);line-height:1.45;color:#919793;margin-bottom:calc(var(--unit)*.5);max-width:none}
.story-caption .text-link{font-family:Inter,Arial,sans-serif;border:0;font-size:calc(var(--unit)*.7);gap:7px;color:#485a55;margin-top:calc(var(--unit)*.4);padding:0}
.story-caption .text-link span{font-size:1em}
.story-reverse{grid-template-columns:35.4% 58.9%}
.story-reverse .story-large,.story-four .story-large{margin:0}
.story-reverse .story-side{padding:0}
.story-four .story-side{padding-top:calc(var(--unit)*.75)}
.story-four{margin-bottom:calc(var(--unit)*1.5)}
.media-index{display:none}
.footage-note{font-size:9px}
.statement{padding-top:var(--section-space);padding-bottom:var(--section-space)}
.statement h2{font-size:clamp(32px,3.6vw,56px)}
.statement-actions{margin-top:28px}
.lower-review-stage{min-height:300px}
.js .story-large.reveal,.js .story-side.reveal{opacity:1;filter:none;transform:none;transition:none}
.js .story-large.reveal{transform:scale(var(--media-scale,.86))}
.js .story-image{transform:scale(var(--media-scale,.86))}
.js .story-caption{opacity:var(--caption-opacity,1);transition:opacity .3s}
.js .reveal{filter:none;transform:translateY(20px)}
.js .reveal.is-visible{transform:none}
.js .story-large.reveal.is-visible{transform:scale(var(--media-scale,.86))}
@media(min-width:1640px){.service-item{flex-basis:409px}}
@media(max-width:1100px){:root{--section-space:48px}}
@media(max-width:1100px) and (min-width:701px){.header-phone{display:flex}.brand img{height:26px}.header-inner{height:64px}.nav-trigger,.nav-link{font-size:9px}.header-cta,.header-phone{font-size:11px}.desktop-nav{gap:24px}.hero{min-height:560px}.hero h1{font-size:4.8vw}.hero-content p{font-size:15px}.hero-content{bottom:105px}.hero-secondary,.hero-buttons .btn{font-size:12px}.hero-bottom{bottom:26px}.services-heading-row h2{font-size:3.3vw}.services-aside{font-size:11px}.card-title{font-size:16px}.service-summary{font-size:10px}.story-caption h3{font-size:18px}.story-caption p{font-size:11px}.story-caption .text-link{font-size:11px}.approach-intro{font-size:16px;max-width:290px}.approach-intro .btn{font-size:11px}.story-caption .eyebrow{font-size:8px}.square-control{width:24px;height:24px;font-size:14px}}
@media(max-width:700px){
  :root{--gutter:22px;--unit:14px;--section-space:40px}
  html{scroll-padding-top:68px}.lower-review-stage{min-height:0}
  .header-inner{height:68px}.brand img{height:32px}.header-actions,.desktop-nav{display:none}.mobile-menu{top:68px}
  .hero{height:100svh;min-height:640px}.hero-content{bottom:115px}.hero h1{font-size:clamp(35px,9.2vw,54px);line-height:1.08;letter-spacing:-.025em;margin-bottom:19px}.hero-content p{font-size:14px;font-weight:400;line-height:1.45;max-width:350px;margin-bottom:24px}
  .hero-video{object-position:75% center}.hero-buttons{gap:12px;flex-wrap:wrap}.hero-buttons .btn{font-size:12px;padding:13px 17px;gap:8px}.hero-secondary{font-size:11px;padding-left:0}.hero-bottom{bottom:24px;padding-top:16px}.scroll-explore{font-size:7px;letter-spacing:.08em}.hero-bottom-right>a{display:none}.motion-icon{font-size:14px}
  .services{padding-top:40px;padding-bottom:40px;padding-left:22px}.services-heading{padding-left:0}.services-heading .eyebrow{font-size:8px;margin-bottom:22px;word-spacing:25px}.services-heading-row{display:block;margin-bottom:28px}.services-heading-row h2{font-size:34px}.services-heading-row .btn{margin-top:22px;font-size:12px}.services-aside{font-size:13px;padding-right:22px;margin-bottom:25px;max-width:380px}.rail-controls{padding-bottom:0;margin-top:18px}.square-control{width:26px;height:26px;font-size:14px}.service-rail{gap:9px}.service-item{flex-basis:73vw;max-width:360px}.service-card{aspect-ratio:4/5;max-width:none;min-width:0;height:auto}.card-title{font-size:21px}.card-body{left:15px;bottom:17px;right:15px}.card-description{font-size:11px}.service-summary{font-size:10px;padding-top:9px}.card-arrow{width:27px;height:27px;font-size:14px}
  .approach{padding-top:0}.approach-heading{padding-bottom:30px;margin-bottom:30px}.approach-heading h2{font-size:34px;line-height:1.12}.approach-intro{margin:0 0 32px;max-width:310px;font-size:16px;line-height:1.4}.approach-intro .btn{font-size:11px;margin-top:16px}
  .story-row,.story-reverse{display:flex;flex-direction:column;gap:25px;margin:0 0 40px}.story-large,.story-three .story-large,.story-four .story-large,.story-reverse .story-large{margin:0;width:100%;aspect-ratio:1.08}.story-large video{height:100%;aspect-ratio:auto}.story-side,.story-reverse .story-side,.story-three .story-side{display:grid;grid-template-columns:34% 1fr;gap:18px;padding:0;margin:0}.story-image.portrait,.story-image.square{aspect-ratio:.78}.story-caption{padding:0}.story-caption .eyebrow{font-size:7px;margin-bottom:5px}.story-caption h3{font-size:20px;margin-bottom:11px}.story-caption p{font-size:11px;line-height:1.45;margin-bottom:8px}.story-caption .text-link{font-size:10px;margin-top:5px}.footage-note{font-size:8px}.story-four{margin-bottom:22px}
  .btn{font-size:12px;padding:13px 18px}.contact-dialog h2,.service-dialog h2{font-family:Mundial,Arial,sans-serif}
}
@media(prefers-reduced-motion:reduce){.js .story-large.reveal,.js .story-image{transform:none!important}.js .story-caption{opacity:1!important}}
/* Keep header controls readable independently of the page's fluid type scale. */
@media(min-width:941px) and (max-width:1100px){
  html{scroll-padding-top:82px}.header-inner{height:82px}.brand img{height:40px}
  .desktop-nav{gap:28px}.nav-trigger,.nav-link{font-size:12px}
  .header-phone{display:none}.header-cta{font-size:13px;padding:15px 20px}
}
@media(max-width:940px){
  html{scroll-padding-top:76px}.header-inner{height:76px}.brand img{height:38px}
  .desktop-nav,.header-actions{display:none}
  .menu-toggle{display:flex;width:44px;height:44px;flex-direction:column;justify-content:center;gap:6px;background:none;padding:10px 8px;color:inherit}
  .menu-toggle span{display:block;height:1px;width:28px;background:currentColor;transition:transform .3s}
  .menu-open .menu-toggle span:first-child{transform:translateY(3.5px) rotate(45deg)}
  .menu-open .menu-toggle span:last-child{transform:translateY(-3.5px) rotate(-45deg)}
  .mobile-menu{display:flex;position:absolute;top:76px;left:0;right:0;max-height:calc(100svh - 76px);overflow-y:auto;background:white;color:var(--ink);flex-direction:column;padding:20px var(--gutter) 30px;opacity:0;visibility:hidden;transform:translateY(-10px);transition:.3s;box-shadow:0 15px 20px #0001}
  .mobile-menu.open{visibility:visible;opacity:1;transform:none}
  .mobile-menu>a,.mobile-menu>button{background:none;display:flex;align-items:center;justify-content:space-between;text-align:left;border-bottom:1px solid var(--line);padding:18px 0;font-size:21px}
  .mobile-menu>a.mobile-phone{font-size:13px;border:0;padding-top:30px}
}
/* The services introduction and rail share the same full-width grid. */
.ui-arrow{display:inline-block;width:18px;height:18px;flex:0 0 auto;vertical-align:middle}
.ui-arrow-left{transform:rotate(180deg)}
.ui-arrow-up{transform:rotate(-90deg)}
.btn>span,.hero-secondary>span,.text-link>span,.header-phone>span{display:inline-flex;align-items:center;flex-shrink:0}
.btn:hover span,.lower-sector:hover .lower-sector-top svg,.lower-newsletter-field button:hover svg{transform:translateX(3px)}
.chevron{display:inline-flex;align-items:center}.chevron .ui-arrow{width:15px;height:15px}
.card-arrow .ui-arrow,.lower-insight-arrow .ui-arrow{width:18px;height:18px}
.lower-sector-top .ui-arrow,.lower-newsletter-field .ui-arrow{width:22px;height:22px}
.services{padding-right:var(--gutter)}
.services-heading{padding:0}
.services-heading-row{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(0,.78fr) auto;align-items:end;gap:28px;margin-bottom:52px}
.services-heading-row h2{font-size:clamp(36px,3.25vw,54px);line-height:1.1;letter-spacing:-.035em;max-width:none}
.services-heading-row h2 em{color:var(--mint);font-style:normal}
.services-description{font-size:clamp(13px,1vw,16px);line-height:1.5;color:#707070;margin:0}
.services-heading-row .btn{font-size:14px;padding:16px 23px;white-space:nowrap;align-self:end}
.services-layout{display:block}
.service-rail{gap:24px;padding:0;scroll-padding:0}
.service-item{flex:0 0 calc((100% - 72px)/4);max-width:none}
.service-card{aspect-ratio:.79;max-width:none}
.card-title{font-size:clamp(20px,1.6vw,26px);line-height:1.15}
.service-summary{font-size:11px;line-height:1.45;padding-top:12px}
.services>.rail-controls{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin:24px 0 0;padding:0}
.services .rail-counter{display:block;font-size:11px;color:#7c8380;margin-right:12px}
.services .square-control{width:36px;height:36px;font-size:18px}
.approach-banner{min-height:clamp(300px,25vw,480px);padding:64px var(--gutter);display:grid;place-items:center;text-align:center;background:#00484c url('/approach-background.webp') center center/cover no-repeat fixed;color:#fff}
.approach-banner h2{font-family:Mundial,Arial,sans-serif;font-weight:400;font-size:clamp(42px,4.6vw,80px);line-height:1.16;letter-spacing:-.035em;margin:0}
.approach-banner h2 em{color:#00b697;font-style:normal}
.approach{padding-top:var(--section-space)}
@media(max-width:1100px){
  .services-heading-row{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:24px;margin-bottom:36px}
  .services-heading-row h2{grid-row:span 2;font-size:38px}
  .services-heading-row .btn{justify-self:start}
  .service-rail{gap:18px}.service-item{flex-basis:calc((100% - 36px)/3)}
}
@media(max-width:700px){
  .services-heading-row{display:flex;flex-direction:column;align-items:flex-start;gap:20px;margin-bottom:30px}
  .services-heading-row h2{font-size:34px;line-height:1.1}
  .services-description{font-size:14px;max-width:400px}
  .services-heading-row .btn{align-self:flex-start;margin:0;font-size:12px;padding:14px 20px}
  .service-rail{gap:14px}.service-item{flex-basis:84%;max-width:360px}
  .card-title{font-size:23px}.service-summary{font-size:11px}
  .services>.rail-controls{margin-top:20px}
  .approach-banner{min-height:260px;padding:40px 20px}
  .approach-banner h2{font-size:clamp(30px,8.5vw,46px);line-height:1.22;letter-spacing:-.035em}
}
