/* CODESE portfolio: shared identity, distinct compositions. */
.codese-site{--co-blue:#123d78;--co-navy:#0b2e4e;--co-ink:#16344f;--co-muted:#4d6275;--co-rule:#ccd7de;--co-paper:#f2f0e9;--co-green:#8bc244}
.codese-site [data-header]{position:sticky;top:0;z-index:100}
.codese-site main{overflow:clip}
.codese-site [hidden]{display:none!important}
.codese-site :is(a,button,summary,input,select,textarea):focus-visible{outline:3px solid #6b992e;outline-offset:4px}
.co-skip{position:fixed;left:20px;top:-90px;z-index:1000;background:#fff;color:#123d78;padding:14px 20px;font-size:14px;font-weight:600}
.co-skip:focus{top:12px}
.nav-mega.is-dismissed .mega-panel{visibility:hidden;opacity:0}
.co-noscript{padding:14px 25px;background:#edf2f4;display:flex;flex-wrap:wrap;gap:18px}
.codese-site .nav-links{gap:20px;font-size:12px}
.firm-page{font-family:"IBM Plex Sans",Arial,sans-serif;background:#f4f2ec;color:#16344f}
.firm-page main :is(h1,h2,h3){font-family:"Source Serif 4",Georgia,serif;font-weight:500;letter-spacing:-.025em;line-height:1.15;text-wrap:pretty}
.firm-page .page-hero{padding:40px 0 60px;background:#e5e8e1;border-bottom:1px solid #cdd6d4}
.firm-page .page-hero:before,.firm-page .page-hero:after{display:none}
.firm-page .page-hero .container{max-width:var(--max);text-align:left}
.firm-page .page-hero p{margin-inline:0}
.firm-page .page-hero .breadcrumb,.firm-page .page-hero .breadcrumb a{color:#516c7b}
.firm-experience .page-hero .breadcrumb,.firm-experience .page-hero .breadcrumb a{color:#d0e0ec}
.firm-page .page-hero h1{font-size:clamp(38px,5vw,66px);max-width:1030px;margin:20px 0 24px;color:#16344f}
.firm-page .page-hero p{font-size:18px;line-height:1.65;max-width:850px;color:#455d71}
.firm-page .breadcrumb{font-size:12px;margin-bottom:34px}
.firm-page .section{padding:66px 0}
.firm-page .section-soft{background:#e9ece6}
.firm-page .section h2{font-size:clamp(30px,3vw,42px)}
.firm-page .section p{font-size:16px;line-height:1.75;color:#455d71}
.firm-page .section-head{max-width:900px;margin-bottom:36px}
.firm-page :is(.card,.solution,.logo-panel,.contact-card,.form-card){border:0;border-radius:0;box-shadow:none;background:transparent;padding:24px 0;border-top:1px solid #b5c6cd}
.firm-page .card h3,.firm-page .solution h3{font-size:28px;margin-top:6px}
.firm-page .grid{gap:24px 44px}
.firm-page .grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}
.firm-page .grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
.firm-page .split{gap:60px;align-items:start}
.firm-page .eyebrow{font-family:"IBM Plex Mono",monospace;font-size:10px;letter-spacing:.08em;color:#4d7130}
.firm-page .pill,.firm-page .tag{background:transparent;color:#55722f;border:0;padding:0;font:500 11px "IBM Plex Mono",monospace;letter-spacing:.025em}
.firm-page .section-green{background:#123f39;color:#fff}
.firm-page .section-green :is(h2,h3,p,.eyebrow,.firm-link){color:#fff}
.firm-page .ro-panel{background:transparent;border-left:1px solid #64957b;border-radius:0;padding:0 0 0 30px;box-shadow:none}
.firm-page .brand-showcase{border-radius:0;background:#dae3db;border:0;min-height:410px}
.firm-page .principles{margin-top:28px}
.firm-page .principle{padding:18px 0;border-bottom:1px solid #cad4d5}
.firm-page .principle b{background:transparent;color:#436923}
.firm-link{display:inline-block;font:600 13px "IBM Plex Sans",Arial,sans-serif;margin-top:15px;color:#123d78;border-bottom:1px solid #8ba7b4;padding-bottom:5px}
.firm-link:hover{color:#496b29;border-color:currentColor}
.firm-page .route{border:0;border-left:3px solid #9ecb64;border-radius:0;background:#e5ebe5;font-size:13px;line-height:1.7;padding:15px 18px}
.firm-combination{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:22px}
.firm-combination small{flex-basis:100%;color:#49617a;font-size:11px;text-transform:uppercase;letter-spacing:.04em}
.firm-combination a{font-size:12px;line-height:1.5;text-decoration:underline;text-underline-offset:4px}
.firm-experience .page-hero{background:#0b2e4e}
.firm-experience .page-hero :is(h1,p,.eyebrow,.breadcrumb,.breadcrumb a){color:#fff}
.firm-experience .case-card{display:block;border-top:1px solid #adc2cb;padding:24px 0;overflow:visible}
.firm-experience .case-top,.firm-experience .case-body{padding:0;background:transparent;min-height:0;border:0}
.firm-experience .case-body h3{margin:15px 0}
.firm-experience .case-meta{border:0;display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:16px;padding:0}
.firm-experience .case-meta span{padding:0;border:0;background:transparent;font-size:11px;color:#496a7d}
.firm-experience .case-card:first-child{grid-column:1/-1;padding:28px 36px;background:#e0e7df;display:grid;grid-template-columns:1fr 2fr;gap:50px}
.firm-experience .case-card:first-child h3{font-size:36px;margin-top:0;max-width:600px}
.firm-page .notice{border:0;border-left:3px solid #87b445;border-radius:0;background:#e5ebe5;line-height:1.7}
.firm-process .process{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 60px;counter-reset:stage}
.firm-process .process-step{border:0;border-top:1px solid #adc2cb;border-radius:0;background:transparent;padding:26px 0 28px 55px;position:relative}
.firm-process .process-step:before{counter-increment:stage;content:counter(stage,decimal-leading-zero);position:absolute;inset:29px auto auto 0;background:transparent;font:500 16px "IBM Plex Mono",monospace;color:#55722f;width:auto;height:auto}
.firm-process .process-step h3{font-size:26px}
.firm-cta{padding:48px 0;background:#0b2e4e;color:white}
.firm-cta .container{display:flex;align-items:center;justify-content:space-between;gap:40px}
.firm-cta h2{font-size:clamp(28px,3vw,40px);max-width:700px;margin:12px 0 0}
.firm-cta .eyebrow{color:#bfdda1}
.firm-cta .sl-button{flex-shrink:0}
.firm-search{display:grid;grid-template-columns:1fr auto;gap:12px 30px;padding:0 0 34px;border-bottom:1px solid #b6c7ce;margin-bottom:20px}
.firm-search label{grid-column:1/-1;font-size:13px;font-weight:600}
.firm-search input{min-height:48px;border:1px solid #9cb3c0;background:#fff;padding:12px 16px;border-radius:0;font:16px "IBM Plex Sans",Arial,sans-serif;width:100%}
.firm-search span{align-self:center;font-size:12px;color:#4d6275}
.firm-directory{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 50px}
.firm-line{display:grid;grid-template-columns:36px 1fr;gap:16px;padding:34px 0;border-bottom:1px solid #b6c7ce;align-self:start}
.firm-line-number{font:500 13px "IBM Plex Mono",monospace;color:#55722f;padding-top:5px}
.firm-page .firm-line h2{font-size:30px;margin:0 0 16px}
.firm-page .firm-line p{font-size:14px}
.firm-line details{margin:20px 0 5px}
.firm-line summary{font-size:13px;font-weight:600;cursor:pointer;padding:8px 0;list-style:revert}
.firm-line ul{padding-left:18px;margin-top:14px}
.firm-line li{font-size:13px;line-height:1.55;padding:7px 0}
.firm-line li a:hover{text-decoration:underline;text-underline-offset:3px}
.firm-transverse{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 50px}
.firm-transverse article{border-top:1px solid #b6c7ce;padding:24px 0}
.firm-transverse h3{font-size:27px;margin:0}
.firm-editorial{display:grid;grid-template-columns:280px minmax(0,740px);gap:70px;justify-content:space-between}
.firm-guide-index{position:sticky;top:120px;align-self:start;display:grid;gap:18px;border-top:3px solid #84b941;padding-top:25px}
.firm-guide-index a{font-size:14px;line-height:1.5;border-bottom:1px solid #ccd5d8;padding-bottom:18px}
.firm-guide{padding:0 0 52px;margin-bottom:44px;border-bottom:1px solid #c5d0d4;scroll-margin-top:115px}
.firm-guide h2{margin:14px 0 25px}
.firm-ro-components{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 50px}
.firm-ro-component{display:grid;grid-template-columns:35px 1fr;gap:16px;border-top:1px solid #afc1c9;padding:26px 0}
.firm-ro-component>span{font:500 13px "IBM Plex Mono",monospace;color:#55722f;margin-top:5px}
.firm-ro-component h3{font-size:27px;margin:0}
.firm-page .contact-grid{grid-template-columns:.7fr 1.4fr;gap:70px;align-items:start}
.firm-page .contact-card h2{font-size:31px;margin:16px 0}
.firm-page .contact-card :is(h2,h3,strong,a),.firm-page .public-note :is(h3,p){color:#16344f}
.firm-page .form-card h2{margin:16px 0 30px}
.firm-page .contact-row{background:transparent;border-radius:0;border:0;border-top:1px solid #c3ced3;padding:18px 0;display:grid;gap:7px}
.firm-page .contact-row small{color:#597083}
.firm-page .form-grid{gap:22px}
.firm-page .field label,.firm-draft label{display:block;font-size:13px;font-weight:600;color:#16344f;margin-bottom:8px}
.firm-page .field :is(input,select,textarea),.firm-draft textarea{border:1px solid #9ab0bd;border-radius:0;background:#fff;padding:12px 14px;color:#16344f;font:15px "IBM Plex Sans",Arial,sans-serif;min-height:46px;width:100%}
.firm-page .field textarea{min-height:160px;resize:vertical}
.firm-page .firm-form-note,.firm-page .firm-contact-note{font-size:13px;line-height:1.65;margin:20px 0}
.firm-draft{margin-top:35px;border-top:3px solid #8cba4c;padding-top:22px;scroll-margin-top:115px}
.firm-draft h3{font-size:30px;margin:0}
.firm-draft textarea{font-size:13px;line-height:1.6;resize:vertical}
.firm-draft .sl-button{font-size:12px}
.cap-detail .firm-link{margin:0 0 10px}
@media(min-width:1101px){.codese-site .brand{max-width:240px}.codese-site .brand-wordmark{width:178px}.codese-site .brand-unit{font-size:8px}}
@media(max-width:1100px){.firm-editorial{grid-template-columns:230px 1fr;gap:35px}.firm-page .contact-grid{gap:35px}.firm-page .page-hero h1{font-size:52px}}
@media(max-width:900px){.firm-directory,.firm-transverse,.firm-ro-components,.firm-process .process{grid-template-columns:1fr}.firm-page .split{gap:35px}.firm-page .grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.firm-page .contact-grid{grid-template-columns:1fr}.firm-page .brand-showcase{min-height:280px}.firm-editorial{grid-template-columns:1fr}.firm-guide-index{position:static}.firm-cta .container{align-items:start;flex-direction:column;gap:25px}}
@media(max-width:980px){.codese-site .nav-links{max-height:calc(100dvh - 74px);overflow-y:auto;overscroll-behavior:contain}.codese-site .brand-unit{display:block;font-size:8px}}
@media(max-width:600px){.firm-page .page-hero{padding:26px 0 38px}.firm-page .page-hero h1{font-size:38px}.firm-page .page-hero p{font-size:16px}.firm-page .breadcrumb{margin-bottom:24px}.firm-page .section{padding:42px 0}.firm-page .grid-2,.firm-page .grid-3,.firm-page .grid-4{grid-template-columns:1fr}.firm-experience .case-card:first-child{display:block;padding:24px}.firm-experience .case-card:first-child h3{font-size:29px;margin-top:16px}.firm-search{grid-template-columns:1fr}.firm-search label{grid-column:auto}.firm-line{grid-template-columns:24px 1fr;gap:12px}.firm-page .firm-line h2{font-size:27px}.firm-page .ro-panel{padding:22px 0 0;border-left:0;border-top:1px solid #64957b}.firm-page .form-grid{grid-template-columns:1fr}.firm-page .field.full{grid-column:auto}.firm-page .contact-card{padding-top:15px}.firm-page .brand-showcase{min-height:220px}.firm-page .section h2{font-size:30px}}
.service-landing{font-family:"IBM Plex Sans",Arial,sans-serif;background:var(--co-paper);color:var(--co-ink)}
.sl-wrap{width:min(1220px,calc(100% - 72px));margin-inline:auto}
.service-landing main h1,.service-landing main h2,.service-landing main h3{font-family:"Source Serif 4",Georgia,serif;font-weight:500;letter-spacing:-.03em;line-height:1.13;text-wrap:pretty}
.sl-kicker{display:block;font-family:"IBM Plex Mono",monospace;font-size:10px;line-height:1.55;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:#55772e}
.sl-breadcrumb{display:flex;flex-wrap:wrap;gap:9px;align-items:baseline;font-size:10px;line-height:1.55;margin-bottom:26px;color:#556a7b}
.sl-breadcrumb a:hover{text-decoration:underline}
.sl-hero{background:#e7e8e1}
.sl-hero-split,.sl-hero-photo{display:grid;grid-template-columns:1.15fr 1fr}
.sl-hero-content{padding:25px 45px 39px max(36px,calc((100vw - 1220px)/2));align-self:center}
.sl-hero h1{font-size:clamp(39px,4.2vw,58px);margin:16px 0 20px;color:var(--co-ink);max-width:800px}
.sl-lead{font-family:"Source Serif 4",Georgia,serif;font-size:21px;line-height:1.4;margin:0 0 15px;max-width:750px}
.sl-intro{font-size:15px;line-height:1.7;margin:0;max-width:720px;color:#455d71}
.sl-hero-image{position:relative;overflow:hidden;min-height:390px}
.sl-hero-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.sl-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:23px}
.sl-button{display:inline-flex;align-items:center;justify-content:center;gap:20px;padding:12px 19px;min-height:45px;border:1px solid transparent;font-size:12px;line-height:1.4;font-weight:600}
.sl-green{color:#102c42;background:#9bd14d;border-color:#9bd14d}
.sl-green:hover{background:#b3df78}
.sl-outline{color:var(--co-blue);border-color:#9dafbd}
.sl-outline:hover{background:#edf1e7}
.sl-button>span[aria-hidden]{font-size:18px}
.sl-hero-type{background:var(--co-navy);color:#fff;padding:25px 0 38px}
.sl-hero-type h1{color:#fff;max-width:990px;font-size:clamp(40px,4.5vw,62px)}
.sl-hero-type .sl-kicker,.sl-hero-type .sl-breadcrumb{color:#c6dea8}
.sl-hero-type .sl-intro{color:#e1ebf3;max-width:900px}
.sl-hero-type .sl-outline{color:#fff;border-color:#9eb7cb}
.sl-hero-type .sl-outline:hover{background:#254c6a}
.sl-hero-type .sl-lead{font-family:"IBM Plex Sans",Arial,sans-serif;font-size:21px;font-weight:500;color:#edf3f8}
.sl-route{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;list-style:none;padding:20px 0 0;margin:30px 0 0;border-top:1px solid #aabaca}
.sl-route li{display:flex;align-items:baseline;gap:13px;font-size:14px;line-height:1.5}
.sl-route li>span{font-family:"IBM Plex Mono",monospace;font-size:10px;color:#63853d}
.sl-hero-type .sl-route{border-color:#52728c;margin-top:28px}
.sl-hero-type .sl-route li>span{color:#bde38d}
.sl-route-section{background:#e3ebee;padding:27px 0 30px}
.sl-route-section .sl-route{margin-top:17px;padding-top:0;border-top:0}
.sl-services{padding:38px 0 40px;scroll-margin-top:95px}
.sl-section-head{display:grid;grid-template-columns:1.6fr 1fr;gap:45px;align-items:end;margin-bottom:28px}
.sl-section-head h2{font-size:clamp(28px,2.6vw,36px);margin:13px 0 0;max-width:830px}
.sl-section-head>p{font-size:13px;line-height:1.7;margin:0;max-width:450px;color:var(--co-muted)}
.sl-browser{display:grid;grid-template-columns:285px minmax(0,1fr);gap:27px;align-items:start}
.sl-nav{display:grid;background:#e8ebe4;padding:0 12px}
.sl-nav a{display:grid;grid-template-columns:24px minmax(0,1fr);gap:12px;align-items:baseline;border-bottom:1px solid #c6d3da;padding:14px 10px;font-size:13px;font-weight:500;line-height:1.4}
.sl-nav a:last-child{border-bottom:0}
.sl-nav a>span:first-child{font-family:"IBM Plex Mono",monospace;font-size:10px;color:#5c7e39}
.sl-nav a[aria-selected=true]{background:var(--co-blue);color:#fff;margin-inline:-12px;padding-inline:22px;border-color:transparent}
.sl-nav a[aria-selected=true]>span:first-child{color:#bde38d}
.sl-nav a:hover{background:#dce6da}
.sl-nav a[aria-selected=true]:hover{background:#0b2e62}
.sl-panel{padding:29px 31px;background:#fbfbf8;border:1px solid var(--co-rule);scroll-margin-top:102px}
.sl-panel+.sl-panel{margin-top:19px}
.sl-panel[hidden]+.sl-panel{margin-top:0}
.sl-service-heading{display:grid;grid-template-columns:44px minmax(0,1fr);gap:17px;align-items:start}
.sl-number{font-family:"IBM Plex Mono",monospace;font-weight:500;line-height:1.15;font-size:31px;color:#719252;letter-spacing:-.05em}
.sl-service-heading h3{font-size:30px;margin:0 0 13px}
.sl-description{font-size:14px;line-height:1.7;margin:0;color:var(--co-muted)}
.sl-outcomes{display:grid;grid-template-columns:1fr 1fr;gap:27px;margin:23px 0;padding-top:22px;border-top:1px solid var(--co-rule)}
.sl-outcomes>div+div{border-left:1px solid var(--co-rule);padding-left:27px}
.sl-outcomes dt{font-family:"Source Serif 4",Georgia,serif;font-size:18px;line-height:1.3;font-weight:500;margin:0 0 8px}
.sl-outcomes dd{font-size:13px;line-height:1.7;color:var(--co-muted);margin:0}
.sl-fullscope{background:#e9eff3;border-block:1px solid var(--co-rule);margin:0 0 22px}
.sl-fullscope summary{position:relative;padding:13px 48px 13px 17px;font-size:12px;font-weight:600;line-height:1.5;list-style:none;cursor:pointer;min-height:45px;color:var(--co-blue)}
.sl-fullscope summary::-webkit-details-marker,.sl-scope summary::-webkit-details-marker{display:none}
.sl-plus{position:absolute;right:16px;top:12px;width:23px;height:23px;border:1px solid #93aabb;border-radius:50%}
.sl-plus:before,.sl-plus:after{content:"";position:absolute;width:9px;height:1px;background:currentColor;left:6px;top:10px}
.sl-plus:after{transform:rotate(90deg)}
details[open]>summary .sl-plus:after{display:none}
.sl-technical h4{font-family:"IBM Plex Sans",Arial,sans-serif;font-size:11px;line-height:1.5;font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin:0 0 11px;color:#315377}
.sl-technical .service-technical-text{font-size:14px;line-height:1.85;margin:0;max-width:92ch;overflow-wrap:anywhere}
.sl-fullscope .sl-technical{padding:8px 17px 23px}
.sl-fullscope .sl-technical h4{display:none}
.sl-consult{display:inline-flex;align-items:center;gap:24px;min-height:44px;padding:12px 19px;background:var(--co-blue);color:#fff;font-size:12px;font-weight:600;line-height:1.4}
.sl-consult span[aria-hidden]{color:#bde38d;font-size:19px}
.sl-consult:hover{background:#0b2e62}
.sl-all{display:flex;align-items:center;gap:20px;min-height:44px;padding:8px 0;background:none;border:0;border-bottom:1px solid var(--co-blue);margin:20px auto 0;font-size:12px;line-height:1.5;font-weight:600;color:var(--co-blue);cursor:pointer}
.sl-layout-horizontal .sl-browser{display:block}
.sl-layout-horizontal .sl-nav{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 16px;background:transparent;padding:0;margin:0 0 25px}
.sl-layout-horizontal .sl-nav a{padding:12px 14px;border-left:1px solid var(--co-rule);border-bottom:2px solid transparent}
.sl-layout-horizontal .sl-nav a[aria-selected=true]{margin:0;background:#e5efda;color:var(--co-ink);border-bottom-color:var(--co-green);padding-inline:14px}
.sl-layout-horizontal .sl-nav a[aria-selected=true]>span:first-child{color:#537a26}
.sl-intelligence .sl-nav{grid-template-columns:repeat(4,minmax(0,1fr))}
.sl-read-all .sl-browser{display:block}
.sl-read-all .sl-nav{margin-bottom:24px}
.sl-layout-browser.sl-read-all .sl-nav{grid-template-columns:repeat(2,minmax(0,1fr))}
.sl-catalogue{display:grid;grid-template-columns:1fr 1fr;gap:8px 35px;align-items:start}
.sl-service{position:relative;min-width:0;border-top:1px solid #a8bdc8;padding:24px 0;scroll-margin-top:102px}
.sl-service .sl-service-heading{grid-template-columns:39px minmax(0,1fr);gap:15px;padding-right:32px}
.sl-service h3{font-size:24px;margin-bottom:11px}
.sl-service .sl-number{font-size:27px}
.sl-scope{margin-top:15px}
.sl-scope summary{display:block;width:fit-content;margin-left:54px;font-size:12px;font-weight:600;line-height:1.5;color:var(--co-blue);list-style:none;cursor:pointer;text-decoration:underline;text-underline-offset:5px;text-decoration-color:#749849;min-height:32px;padding-top:5px}
.sl-scope summary .sl-plus{right:0;top:25px;color:var(--co-blue)}
.sl-service:has(.sl-scope[open]){grid-column:1/-1;background:#e4ebec;padding:25px 27px;border-top-color:transparent}
.sl-service:has(.sl-scope[open]) .sl-plus{right:24px}
.sl-service:has(.sl-scope[open]) h3{font-size:31px}
.sl-service:has(.sl-scope[open]) .sl-scope summary{margin-left:0}
.sl-detail-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:28px;align-items:start;border-top:1px solid #bfced6;margin-top:17px;padding-top:21px}
.sl-detail-grid .sl-outcomes{display:block;border-top:0;margin:0;padding:0 0 0 27px;border-left:1px solid #bfced6}
.sl-detail-grid .sl-outcomes>div+div{border-left:0;padding:17px 0 0;margin-top:18px;border-top:1px solid #bfced6}
.sl-scope .sl-consult{margin-top:22px}
.sl-layout-reading .sl-catalogue,.sl-layout-chapters .sl-catalogue{grid-template-columns:1fr}
.sl-layout-reading .sl-service,.sl-layout-chapters .sl-service{border-top:1px solid var(--co-rule);padding:26px 0}
.sl-layout-reading .sl-service:has(.sl-scope[open]),.sl-layout-chapters .sl-service:has(.sl-scope[open]){background:transparent;border-top-color:var(--co-rule);padding:26px 0}
.sl-layout-reading .sl-service h3,.sl-layout-chapters .sl-service h3{font-size:28px}
.sl-layout-reading .sl-service-heading,.sl-layout-chapters .sl-service-heading{grid-template-columns:70px minmax(0,1fr);gap:24px;padding-right:38px}
.sl-layout-reading .sl-scope summary,.sl-layout-reading .sl-service:has(.sl-scope[open]) .sl-scope summary,.sl-layout-chapters .sl-scope summary,.sl-layout-chapters .sl-service:has(.sl-scope[open]) .sl-scope summary{margin-left:94px}
.sl-layout-reading .sl-detail-grid,.sl-layout-chapters .sl-detail-grid{margin-left:94px}
.sl-layout-reading .sl-service .sl-plus,.sl-layout-chapters .sl-service .sl-plus{right:0}
.sl-layout-reading .sl-service .sl-number,.sl-layout-chapters .sl-service .sl-number{font-family:"Source Serif 4",Georgia,serif;font-size:48px;font-weight:400}
.sl-layout-reading .sl-scope .sl-consult,.sl-layout-chapters .sl-scope .sl-consult{margin-left:94px}
.sl-products{padding:34px 0;background:#e6ecee}
.sl-product-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:27px}
.sl-product-list p{display:grid;grid-template-columns:26px minmax(0,1fr);gap:13px;margin:0;font-size:14px;line-height:1.7}
.sl-product-list p+p{border-left:1px solid #b7c8d1;padding-left:23px}
.sl-product-list p>span{font-family:"IBM Plex Mono",monospace;font-size:10px;line-height:2;color:#587b39}
.sl-related{padding:30px 0}
.sl-related .sl-wrap>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:16px}
.sl-related a{display:flex;justify-content:space-between;align-items:baseline;gap:17px;border-top:1px solid var(--co-rule);padding:15px 0;font-family:"Source Serif 4",Georgia,serif;font-size:19px;line-height:1.3}
.sl-related a:hover{text-decoration:underline;text-underline-offset:4px}
.sl-contact{background:var(--co-navy);color:#fff;padding:32px 0 37px}
.sl-contact .sl-wrap{display:flex;align-items:center;justify-content:space-between;gap:55px}
.sl-contact .sl-kicker{color:#c6dea8}
.sl-contact h2{color:#fff;font-size:36px;line-height:1.15;margin:13px 0 0;max-width:850px}
.sl-contact .sl-button{flex-shrink:0}
.sl-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* Different directions share typography, spacing and service semantics. */
.sl-field{background:#fff}.sl-field .sl-hero{background:#163e70;color:#fff}.sl-field .sl-hero h1{font-family:Manrope,Arial,sans-serif;font-weight:800;color:#fff;font-size:clamp(37px,4vw,53px)}.sl-field .sl-hero :is(.sl-intro,.sl-breadcrumb,.sl-kicker){color:#e1edf5}.sl-field .sl-hero .sl-outline{color:#fff;border-color:#bacbda}.sl-field .sl-hero-image{clip-path:polygon(10% 0,100% 0,100% 100%,0 100%)}.sl-field .sl-panel h3{font-family:Manrope,Arial,sans-serif;font-size:29px;font-weight:700}.sl-field .sl-panel{border-left:4px solid #8bc244;background:#f2f6ed}
.sl-system .sl-hero-type{background:#163e70}.sl-system .sl-hero h1{font-family:Manrope,Arial,sans-serif;font-weight:800;font-size:clamp(38px,4vw,54px)}.sl-system .sl-panel{background:#f9fbfc}.sl-system .sl-fullscope{background:#dfeaf0}
.sl-economics{background:#efede5}.sl-economics .sl-hero{background:#e0e4dc}.sl-economics .sl-hero h1{font-size:clamp(40px,4.4vw,62px)}.sl-economics .sl-hero-image img{object-position:58% center}.sl-economics .sl-service:has(.sl-scope[open]){background:#0b2e4e;color:#fff}.sl-economics .sl-service:has(.sl-scope[open]) :is(h3,.sl-description,.sl-technical h4,.sl-outcomes dd,.sl-scope summary){color:#edf4f8}.sl-economics .sl-service:has(.sl-scope[open]) .sl-number{color:#b9d88b}.sl-economics .sl-service:has(.sl-scope[open]) .sl-consult{background:#9bd14d;color:#16344f}.sl-economics .sl-service:has(.sl-scope[open]) .sl-consult span[aria-hidden]{color:#16344f}
.sl-publication{background:#f8f6ef}.sl-publication .sl-hero{background:#e9e4da}.sl-publication .sl-technical{border-left:3px solid #85af48;padding-left:22px}.sl-publication .sl-hero h1{font-size:clamp(40px,4.6vw,63px)}
.sl-repro{background:#edf2f5}.sl-repro .sl-hero-type{background:#112c46}.sl-repro .sl-hero h1{font-family:"IBM Plex Sans",Arial,sans-serif;line-height:1.05;letter-spacing:-.05em;font-weight:600}.sl-repro .sl-technical{background:#fff;padding:22px;border-left:3px solid #8bc244}.sl-repro .sl-services h3{font-family:"IBM Plex Sans",Arial,sans-serif;font-weight:500;font-size:29px}.sl-repro .sl-number{color:#527da0}
.sl-intelligence .sl-hero-type{background:#153b67}.sl-intelligence .sl-hero h1{max-width:930px}.sl-intelligence .sl-panel{border:0;background:#e2ebf2}.sl-intelligence .sl-fullscope{background:#f9fbfc}.sl-intelligence .sl-nav a{font-size:12px}
.sl-capacity{background:#f4f2e9}.sl-capacity .sl-hero{background:#e7edde}.sl-capacity .sl-service .sl-number{color:#638941}.sl-capacity .sl-detail-grid{border-left:4px solid #8bc244;padding-left:25px}.sl-capacity .sl-hero h1{font-size:clamp(35px,3.7vw,50px)}
@media(min-width:901px){.codese-site .mega-panel{top:76px}.codese-site .nav-links{gap:23px}}
@media(max-width:1100px){.sl-wrap{width:calc(100% - 56px)}.sl-browser{grid-template-columns:235px minmax(0,1fr);gap:22px}.sl-hero-content{padding-left:28px;padding-right:28px}.sl-hero h1{font-size:45px}.sl-panel{padding:25px}.sl-nav a{font-size:12px}.sl-detail-grid{gap:23px}.sl-intelligence .sl-nav{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.sl-hero-split,.sl-hero-photo{grid-template-columns:1.15fr .85fr}.sl-hero-content{padding-right:25px}.sl-hero h1{font-size:39px}.sl-intro{font-size:14px}.sl-lead{font-size:19px}.sl-section-head{grid-template-columns:1fr;gap:15px}.sl-section-head>p{max-width:650px}.sl-browser{grid-template-columns:1fr}.sl-nav{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:18px}.sl-nav a[aria-selected=true]{margin:0;padding-inline:10px}.sl-layout-horizontal .sl-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.sl-contact .sl-wrap{flex-direction:column;align-items:start;gap:24px}.sl-product-list{gap:20px}.sl-product-list p+p{padding-left:18px}.sl-layout-reading .sl-detail-grid,.sl-layout-chapters .sl-detail-grid{margin-left:0}.sl-layout-reading .sl-scope .sl-consult,.sl-layout-chapters .sl-scope .sl-consult{margin-left:0}.sl-service:has(.sl-scope[open]) h3{font-size:28px}.sl-related .sl-wrap>div{gap:20px}.sl-related a{font-size:18px}.sl-hero-type h1{font-size:44px}}
@media(max-width:600px){.sl-wrap{width:calc(100% - 36px)}.sl-hero-split,.sl-hero-photo{grid-template-columns:1fr}.sl-hero-content{padding:20px 18px 29px}.sl-breadcrumb{font-size:10px;margin-bottom:22px}.sl-hero h1,.sl-hero-type h1,.sl-economics .sl-hero h1,.sl-publication .sl-hero h1{font-size:37px}.sl-capacity .sl-hero h1{font-size:33px}.sl-hero-image{min-height:210px;max-height:230px}.sl-field .sl-hero-image{clip-path:none}.sl-hero-type{padding:20px 0 30px}.sl-route{grid-template-columns:1fr 1fr;gap:15px;margin-top:22px}.sl-route li{font-size:13px;gap:9px}.sl-services{padding-top:28px}.sl-section-head h2{font-size:28px}.sl-nav,.sl-layout-horizontal .sl-nav{grid-template-columns:1fr}.sl-nav a{font-size:13px;padding-block:12px}.sl-panel{padding:24px 19px}.sl-service-heading{grid-template-columns:30px minmax(0,1fr);gap:12px}.sl-number{font-size:25px}.sl-service-heading h3,.sl-field .sl-panel h3{font-size:26px;line-height:1.2}.sl-description{font-size:13px}.sl-outcomes{grid-template-columns:1fr;gap:21px}.sl-outcomes>div+div{border-left:0;padding-left:0}.sl-outcomes dd{font-size:14px}.sl-fullscope summary{font-size:13px}.sl-catalogue{grid-template-columns:1fr;gap:0}.sl-service{padding-block:24px}.sl-service .sl-service-heading{grid-template-columns:29px minmax(0,1fr);gap:12px;padding-right:29px}.sl-service h3,.sl-service:has(.sl-scope[open]) h3{font-size:24px}.sl-service .sl-number{font-size:24px}.sl-service:has(.sl-scope[open]){padding:23px 17px}.sl-scope summary{margin-left:41px;font-size:13px}.sl-service:has(.sl-scope[open]) .sl-plus{right:14px;top:23px}.sl-plus{width:21px;height:21px}.sl-plus:before,.sl-plus:after{left:5px;top:9px}.sl-detail-grid{grid-template-columns:1fr;gap:23px}.sl-detail-grid .sl-outcomes{padding:20px 0 0;border-left:0;border-top:1px solid #bfced6}.sl-technical .service-technical-text{font-size:14px}.sl-consult{font-size:13px}.sl-layout-reading .sl-service,.sl-layout-reading .sl-service:has(.sl-scope[open]),.sl-layout-chapters .sl-service,.sl-layout-chapters .sl-service:has(.sl-scope[open]){padding:23px 0}.sl-layout-reading .sl-service-heading,.sl-layout-chapters .sl-service-heading{grid-template-columns:35px minmax(0,1fr);gap:13px;padding-right:28px}.sl-layout-reading .sl-service .sl-number,.sl-layout-chapters .sl-service .sl-number{font-size:32px}.sl-layout-reading .sl-service h3,.sl-layout-chapters .sl-service h3,.sl-repro .sl-services h3{font-size:24px}.sl-layout-reading .sl-scope summary,.sl-layout-reading .sl-service:has(.sl-scope[open]) .sl-scope summary,.sl-layout-chapters .sl-scope summary,.sl-layout-chapters .sl-service:has(.sl-scope[open]) .sl-scope summary{margin-left:48px}.sl-layout-reading .sl-service .sl-plus,.sl-layout-chapters .sl-service .sl-plus{right:0}.sl-products{padding-block:28px}.sl-product-list{grid-template-columns:1fr;gap:19px}.sl-product-list p+p{border-left:0;padding-left:0}.sl-related .sl-wrap>div{grid-template-columns:1fr;gap:0}.sl-related a{font-size:20px}.sl-contact h2{font-size:29px}.sl-contact{padding-block:28px}.sl-capacity .sl-detail-grid{padding-left:17px}.sl-actions{gap:10px}.sl-button{font-size:12px;gap:15px;padding-inline:16px}}
@media(prefers-reduced-motion:reduce){html:has(.codese-site){scroll-behavior:auto}.codese-site *{transition:none!important}}
