:root{--navy:#0f172a;--blue:#486e95;--paper:#f4f5f4;--muted:#627080}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0;color:var(--navy);background:var(--paper);font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit}header{height:92px;background:var(--navy);color:white;display:flex;align-items:center;justify-content:space-between;padding:0 5%;position:sticky;top:0;z-index:20;border-bottom:1px solid #ffffff24}.brand{display:block;width:180px}.brand img{width:100%;display:block}nav{display:flex;align-items:center;gap:36px;font-size:13px}nav a:hover{color:#afcce9}.nav-contact{border:1px solid #ffffff55;padding:14px 19px}.menu{display:none}.hero{height:700px;max-height:calc(100svh - 92px);min-height:560px;position:relative;color:white;display:flex;align-items:center}.hero-bg,.hero-shade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-bg{object-position:center 58%}.hero-shade{background:linear-gradient(90deg,rgba(8,17,31,.94),rgba(8,17,31,.57) 55%,rgba(8,17,31,.13)),linear-gradient(0deg,rgba(8,17,31,.7),transparent 40%)}.hero-content{position:relative;padding:35px 7%;width:100%}.eyebrow{font-size:11px;font-weight:600;letter-spacing:2.2px;line-height:1.5}.hero .eyebrow{color:#c7d4e2;margin-bottom:28px}h1{font-size:clamp(50px,5.8vw,88px);font-weight:400;letter-spacing:-3.8px;line-height:1.03;margin:0 0 27px}h1 em{font-style:normal;color:#b5d1eb}.hero-desc{font-size:19px;line-height:1.65;color:#e1e6ec;margin-bottom:35px}.button{display:inline-flex;gap:42px;align-items:center;padding:18px 23px;font-size:13px}.light{background:white;color:var(--navy)}.button:hover{background:#c8ddef}.hero-bottom{position:absolute;bottom:0;left:7%;right:7%;padding:23px 0;border-top:1px solid #ffffff44;display:flex;justify-content:space-between;font-size:10px;letter-spacing:1.5px}.wrap{max-width:1280px;margin:auto;padding-left:6%;padding-right:6%}.intro{display:grid;grid-template-columns:1.1fr 1fr;gap:60px;padding-top:100px;padding-bottom:48px}h2{font-size:clamp(36px,3.4vw,50px);line-height:1.13;font-weight:400;letter-spacing:-1.8px;margin:20px 0}.intro-right{padding-top:28px;font-size:19px;line-height:1.65}.muted{color:var(--muted);font-size:15px}.service-index{display:grid;grid-template-columns:1fr 1fr;gap:0 38px;padding-bottom:85px}.service-index a{display:flex;align-items:center;gap:18px;padding:21px 0;border-bottom:1px solid #cbd0d5;font-size:14px}.service-index span{font-size:10px;color:var(--blue)}.service-index b{margin-left:auto;font-size:20px;font-weight:400}.service-index a:hover{color:var(--blue)}.service{display:grid;grid-template-columns:1fr 1fr;gap:64px;padding:0 0 90px;align-items:center}.service:nth-child(even) .service-photo{order:2}.service-photo{height:530px;position:relative}.service-photo img{width:100%;height:100%;object-fit:cover}.caption{position:absolute;bottom:12px;left:13px;background:#0f172abd;color:white;padding:5px 8px;font-size:9px}.service-copy h3{font-size:34px;font-weight:400;letter-spacing:-1px;line-height:1.15;margin:15px 0}.lead{font-size:17px;color:var(--muted);line-height:1.6;margin-bottom:25px}details{border-top:1px solid #cbd0d5}details:last-child{border-bottom:1px solid #cbd0d5}summary{cursor:pointer;list-style:none;font-size:14px;padding:19px 0;display:flex;align-items:center;justify-content:space-between;gap:20px}summary::-webkit-details-marker{display:none}summary span{font-size:21px;font-weight:300;color:var(--blue)}details[open] summary span{transform:rotate(45deg)}details p{font-size:14px;line-height:1.7;color:var(--muted);margin:0 22px 20px 0}.text-link{display:flex;justify-content:space-between;align-items:center;max-width:320px;font-size:13px;border-bottom:1px solid var(--navy);padding:15px 0;margin-top:22px}.text-link:hover{color:var(--blue)}.approach{padding:85px 0 95px;background:var(--navy);color:white}.approach .eyebrow{color:#a9bed2}.approach-heading{display:grid;grid-template-columns:1.2fr 1fr;gap:70px;align-items:center}.approach-heading p{font-size:17px;line-height:1.7;color:#b7c2ce}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:36px;margin-top:55px}.steps>div{border-top:1px solid #ffffff40;padding-top:22px}.steps span{font-size:10px;color:#a9bed2;letter-spacing:1px}.steps h3{font-size:21px;font-weight:400;margin:22px 0 14px}.steps p{font-size:14px;color:#b7c2ce;line-height:1.7}.contact{display:grid;grid-template-columns:1fr 1fr;gap:80px;padding-top:100px;padding-bottom:100px}.contact>div>p{color:var(--muted);font-size:16px;line-height:1.8}.people article{padding:28px 0;border-top:1px solid #cbd0d5}.people h3{font-size:21px;font-weight:400;margin:15px 0 6px}.people p{font-size:13px;color:var(--muted)}.people a{display:block;font-size:14px;line-height:2}.people a:hover{color:var(--blue)}footer{padding:45px 6%;background:var(--navy);color:white;display:flex;align-items:center;gap:35px;flex-wrap:wrap}footer .brand{width:150px}footer p,footer a,footer small{font-size:11px;color:#c5ceda}footer>a:not(.brand){margin-left:auto}footer small{width:100%;border-top:1px solid #ffffff20;padding-top:25px;margin-top:15px}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #6599ca;outline-offset:5px}
@media(min-width:1500px){.hero-content{max-width:1500px;margin:auto}}@media(max-width:800px){header{height:76px}.brand{width:150px}.menu{display:block;background:none;border:0;color:white;font-size:13px}nav{display:none;position:absolute;top:76px;left:0;right:0;background:var(--navy);padding:25px 6%;align-items:stretch;gap:25px}nav.open{display:flex;flex-direction:column}.hero{min-height:600px;max-height:none;height:calc(90svh - 76px)}h1{font-size:55px;letter-spacing:-2.5px}.hero-content{padding:20px 6%}.hero-desc{font-size:16px}.hero-bottom{left:6%;right:6%;font-size:8px;gap:25px;line-height:1.6}.hero-bottom span:last-child{text-align:right}.intro,.approach-heading,.contact{grid-template-columns:1fr;gap:10px}.intro{padding-top:65px}.intro-right{padding-top:0}.service-index{grid-template-columns:1fr;padding-bottom:60px}.service{grid-template-columns:1fr;gap:30px;padding-bottom:65px}.service:nth-child(even) .service-photo{order:0}.service-photo{height:340px}.service-copy h3{font-size:31px}.steps{grid-template-columns:1fr;gap:25px;margin-top:30px}.approach{padding:60px 0}.steps h3{margin:15px 0 8px}.contact{padding-top:65px;padding-bottom:65px;gap:45px}footer{gap:20px}footer p{display:none}.desktop{display:none}h2{font-size:38px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.sectors{padding-top:85px;padding-bottom:15px}.sector-heading{display:grid;grid-template-columns:1.1fr 1fr;gap:60px;align-items:center}.sector-heading>p{color:var(--muted);line-height:1.8;font-size:16px}.sector-list{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:35px}.sector-list article{padding:25px 0;border-top:2px solid #91a5b8}.sector-list h3{font-size:23px;line-height:1.25;font-weight:400;letter-spacing:-.5px}.sector-list p{font-size:14px;color:var(--muted);line-height:1.8;min-height:102px}.sector-list a{font-size:12px;line-height:1.8;border-bottom:1px solid #a8b5c0;padding-bottom:8px;display:inline-block}.sector-list a:hover{color:var(--blue)}@media(max-width:800px){.sector-heading,.sector-list{grid-template-columns:1fr;gap:15px}.sectors{padding-top:55px}.sector-list p{min-height:0}.hero h1{font-size:45px}.hero-desc{font-size:16px}.sector-list{margin-top:25px}}
.sector-heading {display:block;max-width:1000px}.sector-heading h2{font-size:clamp(28px,3vw,42px);line-height:1.25;letter-spacing:-1px}.sector-heading h2 span{color:var(--muted);font-weight:400}.intro h2{font-size:clamp(30px,3.1vw,42px);line-height:1.25;letter-spacing:-1px}

/* Present the services introduction as one continuous section. */
.intro { display: block; }
.intro h2 { font-size: clamp(28px, 3vw, 42px); line-height: 1.25; letter-spacing: -1px; margin-bottom: 12px; }
.intro-right { padding-top: 0; }
.intro-right .muted { margin: 0; }

/* Give phone readers comfortable type and touch targets without changing desktop. */
@media (max-width: 800px) {
  body { font-size: 17px; line-height: 1.6; }
  .eyebrow, .contact > div > .eyebrow { font-size: 13px; letter-spacing: 1.4px; line-height: 1.6; }
  .menu { font-size: 16px; min-height: 44px; padding: 10px 0 10px 16px; }
  nav { font-size: 17px; gap: 12px; }
  nav a { min-height: 44px; display: flex; align-items: center; }
  .hero { height: auto; min-height: 650px; }
  .hero-content { padding-top: 48px; padding-bottom: 130px; }
  .hero h1 { font-size: clamp(40px, 11.5vw, 52px); line-height: 1.08; letter-spacing: -1.8px; }
  .hero-desc { font-size: 18px; line-height: 1.65; }
  .button { font-size: 16px; line-height: 1.5; min-height: 48px; gap: 24px; }
  .hero-bottom { font-size: 12px; letter-spacing: .7px; gap: 8px; flex-direction: column; padding: 18px 0; }
  .hero-bottom span:last-child { text-align: left; }
  .sector-list h3 { font-size: 26px; line-height: 1.25; }
  .sector-list p, .intro-right .muted, .lead, details p,
  .approach-heading p, .steps p, .contact > div > p { font-size: 17px; line-height: 1.7; }
  .sector-list a { font-size: 16px; min-height: 44px; padding-top: 8px; }
  .service-index a { font-size: 17px; line-height: 1.45; gap: 14px; min-height: 64px; }
  .service-index span, .steps span { font-size: 13px; }
  .service-index b { flex-shrink: 0; }
  summary { font-size: 17px; line-height: 1.5; min-height: 56px; padding: 18px 0; gap: 12px; }
  summary span { flex-shrink: 0; font-size: 24px; }
  .text-link { font-size: 16px; line-height: 1.5; min-height: 48px; max-width: 100%; }
  .steps h3, .people h3 { font-size: 24px; line-height: 1.3; }
  .people p { font-size: 16px; }
  .people a { font-size: 17px; min-height: 44px; }
  footer a, footer small { font-size: 14px; line-height: 1.6; }
  footer > a:not(.brand) { min-height: 44px; display: flex; align-items: center; }
}
