@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap');
:root{--navy:#0e2b43;--navy2:#143950;--dark:#102e44;--ink:#122f44;--muted:#516b7a;--paper:#f8f8f4;--light:#fff;--mist:#eaf0f0;--border:#d6e0df;--ice:#dce9ed;--teal:#a4d5c9}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button{font:inherit}
.site-shell{max-width:1800px;margin:0 auto;overflow:hidden}
.content-gutter{padding-left:clamp(24px,6vw,105px);padding-right:clamp(24px,6vw,105px)}
.eyebrow{font:600 11px/1.5 'IBM Plex Mono','Courier New',monospace;letter-spacing:.105em}
.eyebrow.muted{color:#587382}
.skip-link{position:absolute;left:12px;top:-80px;background:white;padding:10px 15px;z-index:1000}
.skip-link:focus{top:12px}
a:focus-visible,button:focus-visible{outline:3px solid #6d9fb7;outline-offset:4px}
.site-header{height:88px;display:flex;align-items:center;gap:32px;justify-content:space-between;border-bottom:1px solid var(--border);background:var(--paper);position:relative;z-index:20}
.brand{width:198px;min-width:166px;display:block}
.brand img{display:block;width:100%;height:auto;object-fit:contain}
.desktop-nav{display:flex;align-items:center;gap:clamp(19px,2.3vw,37px);margin-left:auto}
.desktop-nav a{font-size:13px;font-weight:700;color:#385265;white-space:nowrap;transition:color .2s}
.desktop-nav a:hover{color:#699486}
.header-cta{display:inline-flex;justify-content:center;align-items:center;gap:18px;padding:0 18px;height:44px;background:var(--navy);color:white;font-size:12px;font-weight:700;white-space:nowrap;transition:background .2s}
.header-cta:hover,.button-primary:hover{background:#28516a}
.header-cta span{font-size:16px;font-weight:400}
.menu-button,.mobile-nav{display:none}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;min-height:57px;padding:0 23px;font-size:14px;font-weight:700;letter-spacing:.003em;transition:background .2s,transform .2s}
.button:hover{transform:translateY(-2px)}
.button span{font-size:19px;font-weight:400}
.button-primary{background:var(--navy);color:#fff}
.text-link{display:inline-flex;align-items:center;gap:15px;font-size:14px;font-weight:700;color:var(--navy);border-bottom:1px solid #7d9fa5;padding-bottom:7px;transition:gap .2s}
.text-link:hover{gap:22px}
.text-link span{font-size:20px;font-weight:400}
.hero{min-height:655px;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(380px,.84fr);gap:clamp(32px,5vw,86px);align-items:center;padding-top:74px;padding-bottom:84px;background:var(--paper)}
.hero-copy{padding-bottom:2px}
.hero-eyebrow{display:flex;gap:12px;align-items:center;color:#375a68;font-size:10px;letter-spacing:.12em}
.eyebrow-mark{width:8px;height:8px;background:#74ab9c;display:inline-block;flex-shrink:0}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{letter-spacing:-.046em}
h1{font-size:clamp(43px,4.55vw,72px);line-height:1.075;margin:26px 0 25px;font-weight:700;max-width:850px}
h1 span{color:#597b86}
.hero-intro{max-width:630px;font-size:17px;line-height:1.7;color:#455e6c;margin:0 0 16px}
.hero-service{font-size:15px;line-height:1.6;color:var(--navy);margin:0 0 32px}
.hero-service a{text-decoration:underline;text-underline-offset:4px;text-decoration-color:#8ea8ae}
.hero-actions{display:flex;gap:26px;align-items:center;flex-wrap:wrap}
.hero-footer-note{font:500 10px/1.6 'IBM Plex Mono','Courier New',monospace;letter-spacing:.025em;color:#607d88;margin-top:34px}
.hero-footer-note span{display:inline-block;margin:0 11px;color:#a6b6bd}
.diagnostic-card{background:var(--navy);color:#fff;padding:clamp(28px,3vw,44px);position:relative;align-self:stretch;display:flex;flex-direction:column;justify-content:space-between;min-height:526px;border-radius:2px;box-shadow:20px 24px 0 -12px #dfe8e7}
.diagnostic-card:before{content:'';position:absolute;top:0;right:0;border:solid transparent;border-width:0 37px 37px 0;border-right-color:#8bbdb2;opacity:.9}
.diagnostic-topline,.diagnostic-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;color:#bed4dc;font:500 10px/1.5 'IBM Plex Mono','Courier New',monospace;letter-spacing:.12em}
.diagnostic-card h2{font-size:clamp(23px,2.14vw,35px);line-height:1.13;letter-spacing:-.039em;max-width:390px;margin:25px 0 32px}
.diagnostic-stages{border-top:1px solid #45657b}
.diagnostic-stage{display:grid;grid-template-columns:33px 1fr;gap:13px;padding:23px 0 21px;border-bottom:1px solid #45657b}
.stage-index{font:600 11px 'IBM Plex Mono',monospace;color:#a7d3c9;padding-top:3px;display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.stage-track{height:26px;width:1px;margin-left:6px;background:#588e90;position:relative}
.stage-track:after{content:'';position:absolute;width:5px;height:5px;border:1px solid #9ac4b9;bottom:-4px;left:-3px;transform:rotate(45deg)}
.final-stage .stage-track{display:none}
.stage-label{font:500 10px/1.5 'IBM Plex Mono',monospace;color:#a6c7cc;letter-spacing:.08em;margin-bottom:7px}
.diagnostic-stage p{font-size:14px;line-height:1.45;font-weight:500;color:#fff;margin:0}
.diagnostic-bottom{justify-content:flex-start;margin-top:24px}
.diag-square{width:8px;height:8px;background:#a4d5c9;display:inline-block}
.recognition{background:#eaf0ee;padding-top:101px;padding-bottom:93px}
.section-heading{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(255px,.66fr);gap:10%;align-items:end}
.section-heading h2{font-size:clamp(35px,3.5vw,53px);line-height:1.14;margin:20px 0 0;max-width:880px}
.section-heading>p{font-size:16px;line-height:1.65;color:#435f6e;margin:0 0 5px;max-width:350px}
.problem-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:25px;margin-top:64px}
.problem-item{border-top:1px solid #a7c0bd;padding-top:20px;min-height:195px;position:relative}
.problem-number{font:600 11px 'IBM Plex Mono',monospace;color:#527985}
.problem-rule{width:24px;height:2px;background:#5d9386;margin:29px 0 24px}
.problem-item h3{font-size:21px;line-height:1.2;letter-spacing:-.035em;max-width:240px;margin:0 0 14px}
.problem-item p{font-size:14px;line-height:1.6;color:#4a6875;max-width:240px;margin:0}
.recognition-bottom{border-top:1px solid #bacdcc;margin:37px 0 0;padding-top:21px;color:#345565;font-size:14px;font-weight:700}
.sprint{background:var(--paper);padding-top:110px;padding-bottom:118px;display:grid;grid-template-columns:1fr 1.02fr;gap:clamp(50px,10vw,160px)}
.sprint-intro{max-width:600px}
.duration-line{display:flex;align-items:center;gap:16px;margin:30px 0 11px}
.duration-number{font:600 70px/.92 'DM Sans',Arial,sans-serif;letter-spacing:-.08em;color:#406a78}
.duration-line>span:last-child{font:600 11px/1.45 'IBM Plex Mono',monospace;letter-spacing:.12em;color:#5c7b86}
.sprint h2{font-size:clamp(38px,3.45vw,53px);line-height:1.13;margin:28px 0 23px;max-width:580px}
.sprint-intro p{font-size:17px;line-height:1.72;color:#4c6977;max-width:540px;margin-bottom:33px}
.sprint-intro p strong{color:#17364a}
.phase-list{border-top:1px solid #a9bdbf;align-self:center}
.phase{display:grid;grid-template-columns:52px minmax(0,1fr);gap:12px;align-items:start;border-bottom:1px solid #b2c3c6;padding:24px 0 24px}
.phase-num{font:600 11px/1.8 'IBM Plex Mono',monospace;color:#597886}
.phase h3{font-size:25px;line-height:1.2;margin:0 0 5px}
.phase p{font-size:14px;line-height:1.6;color:#5d7180;margin:0;max-width:375px}

.deliverables{background:#f0f3f0;padding-top:100px;padding-bottom:100px}
.deliverable-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:57px}
.deliverable{min-height:292px;background:#fff;border:1px solid #dce5e4;padding:28px 29px 31px;display:flex;flex-direction:column;transition:border-color .2s}
.deliverable:hover{border-color:#8faead}
.deliverable-top{display:flex;justify-content:space-between;align-items:center;color:#64818c;font:600 10px 'IBM Plex Mono',monospace;letter-spacing:.095em;margin-bottom:45px}
.deliverable-top span:last-child{font-size:21px;font-family:'DM Sans',sans-serif;font-weight:400;color:#5b8b83}
.deliverable h3{font-size:29px;line-height:1.14;margin:0 0 16px}
.deliverable p{font-size:14px;line-height:1.65;color:#567180;max-width:330px;margin:auto 0 0}
.scope-note{display:flex;align-items:flex-start;gap:13px;border-top:1px solid #c9d8d6;margin-top:30px;padding-top:19px;color:#486875;max-width:970px}
.scope-note p{font-size:13px;line-height:1.55;margin:0}
.scope-note strong{color:var(--ink)}
.scope-icon{width:18px;height:18px;border:1px solid #70989e;border-radius:50%;font:500 11px/17px 'IBM Plex Mono',monospace;text-align:center;flex-shrink:0}
.principle{background:#dce9e7;padding-top:74px;padding-bottom:77px;display:grid;grid-template-columns:.55fr 1.7fr auto;gap:35px;align-items:start;position:relative}
.principle-mark{font:600 10px/1.5 'IBM Plex Mono',monospace;letter-spacing:.11em;color:#537985;white-space:nowrap;margin-top:15px}
.principle-square{display:inline-block;width:8px;height:8px;background:#6caa99;margin-right:7px}
.principle h2{font-size:clamp(38px,3.5vw,56px);line-height:1.1;margin:0 0 14px}
.principle p{font-size:17px;line-height:1.67;color:#3f6270;margin:0;max-width:670px}
.principle-monogram{width:74px;height:92px;object-fit:contain;opacity:.35;filter:grayscale(1)}
.last-cta{background:var(--navy);color:white;padding-top:87px;padding-bottom:91px;display:flex;align-items:center;justify-content:space-between;gap:50px}
.last-cta .eyebrow{color:#a8d2cd}
.last-cta h2{font-size:clamp(38px,3.5vw,54px);line-height:1.13;margin:18px 0 15px;max-width:700px}
.last-cta p{font-size:16px;line-height:1.65;color:#c4d8df;max-width:640px;margin:0}
.button-light{background:#fff;color:var(--navy);flex-shrink:0}
.button-light:hover{background:#e4eeef}
.site-footer{padding-top:40px;padding-bottom:41px;min-height:142px;display:flex;align-items:center;justify-content:space-between;gap:35px;background:var(--paper)}
.site-footer>div:first-child{display:flex;flex-direction:column;gap:7px}
.footer-name{font:600 11px 'IBM Plex Mono',monospace;letter-spacing:.085em}
.footer-line{font-size:13px;color:#66818b}
.footer-right{display:flex;align-items:center;gap:25px;font-size:13px;font-weight:600;color:#476271}
.footer-right a:hover{text-decoration:underline;text-underline-offset:4px}
.footer-right>span{color:#748994;font-size:12px;font-weight:400;border-left:1px solid #d0d9d9;padding-left:23px}
@media(max-width:1160px){.desktop-nav{gap:18px}.header-cta{padding:0 13px}.brand{width:180px}.hero{grid-template-columns:minmax(0,1fr) minmax(330px,.85fr);gap:40px}.hero h1{font-size:clamp(43px,4.6vw,64px)}.diagnostic-card{padding:28px}.diagnostic-stage p{font-size:13px}.problem-grid{gap:18px}.problem-item h3{font-size:19px}.sprint{gap:65px}}
@media(max-width:1030px){.desktop-nav{display:none}.header-cta{margin-left:auto}.menu-button{display:inline-flex;align-items:center;justify-content:center;border:1px solid #bbccce;width:44px;height:44px;font-size:21px;color:var(--navy);background:transparent;cursor:pointer}.mobile-nav.open{display:flex;flex-direction:column;align-items:stretch;gap:0;position:fixed;inset:88px 0 0;z-index:50;overflow-y:auto;background:var(--paper);padding:24px 6vw max(32px,env(safe-area-inset-bottom));border-top:1px solid var(--border)}.mobile-nav a{display:block;padding:19px 0;border-bottom:1px solid #cbd8d8;font-weight:700;font-size:17px}.mobile-nav .mobile-cta{margin-top:30px;padding:19px 22px;border:0;background:var(--navy);color:#fff;text-align:center;font-size:15px}.menu-open{overflow:hidden}.hero{grid-template-columns:1fr;gap:44px;padding-top:67px;padding-bottom:72px}.hero h1{max-width:820px;font-size:clamp(49px,6.3vw,70px)}.hero-intro{max-width:730px}.diagnostic-card{max-width:740px;min-height:0;padding:34px 40px}.diagnostic-card h2{max-width:none}.diagnostic-stage p .stage-line{display:inline}.section-heading{gap:5%}.problem-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:35px}.problem-item{min-height:170px}.problem-item h3,.problem-item p{max-width:350px}.sprint{gap:40px}.principle{grid-template-columns:1fr 2fr}.principle-monogram{display:none}}
@media(max-width:700px){.site-header{height:76px}.brand{width:168px;min-width:0}.header-cta{display:none}.menu-button{margin-left:auto}.mobile-nav.open{inset:76px 0 0;padding:19px 24px max(32px,env(safe-area-inset-bottom))}.content-gutter{padding-left:24px;padding-right:24px}.hero{padding-top:55px;padding-bottom:70px;gap:38px}.hero-eyebrow{font-size:9px}.hero h1{font-size:clamp(43px,9.1vw,58px);line-height:1.09;margin:23px 0}.hero-intro{font-size:16px;line-height:1.68}.hero-service{font-size:14px;margin-bottom:26px}.hero-actions{gap:22px;align-items:flex-start}.hero-footer-note{margin-top:28px;font-size:9px}.hero-footer-note span{margin:0 5px}.diagnostic-card{padding:27px 25px 27px;box-shadow:12px 15px 0 -7px #dfe8e7}.diagnostic-card h2{font-size:27px;margin:25px 0 24px}.diagnostic-stage{padding:17px 0}.stage-label{font-size:9px}.diagnostic-stage p{font-size:13px}.recognition,.sprint,.deliverables{padding-top:74px;padding-bottom:76px}.section-heading{display:block}.section-heading h2{font-size:clamp(34px,7.65vw,47px);margin-top:19px}.section-heading>p{margin-top:22px;font-size:15px;max-width:650px}.problem-grid{margin-top:40px;gap:28px 22px}.problem-item{min-height:0;padding-top:17px}.problem-rule{margin:24px 0 19px}.problem-item h3{font-size:19px}.problem-item p{font-size:13px}.recognition-bottom{font-size:13px;margin-top:33px}.sprint{grid-template-columns:1fr;gap:49px}.duration-number{font-size:64px}.sprint h2{font-size:clamp(38px,8.5vw,51px);margin-top:20px}.sprint-intro p{font-size:16px}.phase{padding:21px 0;grid-template-columns:39px minmax(0,1fr)}.phase h3{font-size:24px}.phase p{font-size:14px}.deliverable-grid{grid-template-columns:1fr;margin-top:37px;gap:13px}.deliverable{min-height:0;padding:23px 24px 27px}.deliverable-top{margin-bottom:23px}.deliverable h3{font-size:27px;margin-bottom:12px}.deliverable h3 .title-line{display:inline}.deliverable p{margin:0;font-size:14px}.principle{grid-template-columns:1fr;gap:20px;padding-top:61px;padding-bottom:68px}.principle-mark{margin-top:0}.principle h2{font-size:42px}.principle p{font-size:16px}.last-cta{padding-top:73px;padding-bottom:76px;display:block}.last-cta h2{font-size:42px}.last-cta p{font-size:15px;margin-bottom:28px}.site-footer{display:block;padding-top:36px;padding-bottom:37px;min-height:0}.footer-right{margin-top:29px;display:flex;flex-wrap:wrap;gap:15px 25px}.footer-right>span{border:none;padding:0;flex-basis:100%}}
@media(max-width:410px){.hero h1{font-size:42px}.hero-actions{flex-direction:column;align-items:stretch}.hero-actions .button{width:100%}.problem-grid{grid-template-columns:1fr;gap:23px}.problem-item{padding-bottom:6px}.problem-rule{margin:16px 0}.problem-item h3{margin-bottom:8px}.diagnostic-card{padding:24px 22px}.diagnostic-topline{font-size:9px}.diagnostic-card h2{font-size:25px}.diagnostic-stage p{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button,.desktop-nav a,.text-link{transition:none}.button:hover{transform:none}}

/* v5.4 — iOS-safe vector arrow; avoids Unicode emoji presentation. */
.icon-up-right{width:1em;height:1em;display:inline-block;vertical-align:-.11em;flex-shrink:0;overflow:visible}


/* v5.5 UNIFIED HEADER. Identical primary navigation anchors for desktop and mobile. */
.unified-nav{display:flex;align-items:center;gap:clamp(19px,2.3vw,37px);margin-left:auto}
.unified-nav>a:not(.unified-nav-cta){font-size:13px;font-weight:700;color:#385265;white-space:nowrap;transition:color .2s}
.unified-nav>a:not(.unified-nav-cta):hover,
.unified-nav>a[aria-current="page"]:not(.unified-nav-cta){color:#2c7268}
.unified-nav-cta{display:none}
.menu-button{gap:10px;padding:0 11px;width:auto;min-width:75px;white-space:nowrap}
.menu-label{font-size:12px;font-weight:700;letter-spacing:.02em}
.menu-lines{display:flex;flex-direction:column;justify-content:center;gap:4px;width:17px;height:16px}
.menu-lines>span{display:block;width:100%;height:2px;border-radius:1px;background:currentColor;transition:transform .18s ease,opacity .18s ease}
.menu-button[aria-expanded="true"] .menu-lines>span:first-child{transform:translateY(6px) rotate(45deg)}
.menu-button[aria-expanded="true"] .menu-lines>span:nth-child(2){opacity:0}
.menu-button[aria-expanded="true"] .menu-lines>span:last-child{transform:translateY(-6px) rotate(-45deg)}
@media (max-width:1030px){
  .unified-nav{display:none}
  .site-header>.header-cta{display:none}
  .menu-button{display:inline-flex;align-items:center;justify-content:center;margin-left:auto}
  .unified-nav.open{display:flex;flex-direction:column;align-items:stretch;gap:0;position:fixed;inset:88px 0 0;z-index:50;overflow-y:auto;overscroll-behavior:contain;background:var(--paper);padding:24px 6vw max(32px,env(safe-area-inset-bottom));margin:0;border-top:1px solid var(--border)}
  .unified-nav>a:not(.unified-nav-cta){display:block;padding:19px 0;border-bottom:1px solid #cbd8d8;font-weight:700;font-size:17px;white-space:normal}
  .unified-nav>.unified-nav-cta{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:28px;padding:18px 21px;background:var(--navy);color:#fff;text-align:left;font-size:15px;font-weight:700}
  .unified-nav-cta .icon-up-right{width:17px;height:17px}
}
@media (max-width:700px){
  .unified-nav.open{inset:76px 0 0;padding:19px 24px max(32px,env(safe-area-inset-bottom))}
}
@media (prefers-reduced-motion:reduce){.menu-lines>span{transition:none}}

/* v5.5: precisely centered close icon rather than an arrow-like glyph */
.menu-lines{position:relative;display:block;width:17px;height:17px}
.menu-lines>span{position:absolute;left:0;width:17px;height:2px;transform:none}
.menu-lines>span:first-child{top:2px}
.menu-lines>span:nth-child(2){top:8px}
.menu-lines>span:last-child{top:14px}
.menu-button[aria-expanded="true"] .menu-lines>span:first-child{top:8px;transform:rotate(45deg)}
.menu-button[aria-expanded="true"] .menu-lines>span:nth-child(2){opacity:0}
.menu-button[aria-expanded="true"] .menu-lines>span:last-child{top:8px;transform:rotate(-45deg)}

/* V5.6: preserve readable word boundaries when two desktop title lines become inline on mobile. */
.deliverable h3 .title-line,.sub-output-grid h3 .title-line{display:block}
.diagnostic-stage p .stage-line{display:block}
@media(max-width:1030px){.diagnostic-stage p .stage-line{display:inline}}
@media(max-width:700px){.deliverable h3 .title-line{display:inline}}
