@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&display=swap');
:root{--navy:#092b53;--ink:#142c45;--blue:#074993;--cyan:#189bd3;--paper:#fff;--pale:#f2f5f8;--gray:#536476;--line:#d8e1e9;--gutter:clamp(24px,5.3vw,96px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0;color:var(--ink);background:var(--paper);font-family:'DM Sans',Arial,sans-serif;font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit}img{display:block;max-width:100%}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:500}button,a,summary{touch-action:manipulation}::selection{background:#9dd9f2;color:var(--navy)}:focus-visible{outline:3px solid var(--cyan);outline-offset:5px}.skip-link{position:fixed;z-index:99;top:-100px;left:20px;background:#fff;padding:12px 20px;color:var(--navy)}.skip-link:focus{top:12px}.site-header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.97);border-bottom:1px solid #e9eef3}.header-inner{max-width:1800px;margin:auto;padding:22px var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:40px}.brand{width:240px;flex-shrink:0}.brand img{width:100%;height:auto}nav{display:flex;align-items:center;gap:38px}nav a{font-size:14px;font-weight:550;position:relative;padding:8px 0}nav a::after{content:'';position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .2s}nav a:hover::after,nav a:focus-visible::after{transform:scaleX(1)}.menu-toggle{display:none}.hero{display:grid;grid-template-columns:1.04fr 1fr;background:var(--navy);color:#fff;max-width:1920px;margin:auto;min-height:655px}.hero-copy{padding:64px 30px 28px var(--gutter);display:flex;flex-direction:column;align-items:flex-start}.eyebrow,.section-label{font-size:12px;font-weight:600;letter-spacing:.16em;line-height:1.5}.light{color:#b7d3ed}.eyebrow{margin-bottom:34px}h1{font-size:clamp(46px,4.5vw,76px);letter-spacing:-.052em;line-height:1.06;font-weight:450}h1 span{color:#71c2eb}.mobile-break{display:none}.hero-description{color:#d4e1ec;margin-top:27px;line-height:1.8;font-size:16px}.button{display:inline-flex;justify-content:center;align-items:center;min-height:50px;padding:13px 25px;font-size:14px;font-weight:600;transition:background .2s,color .2s}.button-white{background:#fff;color:var(--navy);margin-top:31px}.button-white:hover{background:#c8eaff}.hero-bottom{display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin-top:auto;padding-top:44px;color:#b9cddd;font-size:12px;letter-spacing:.14em;font-weight:500}.vertical-line{height:13px;width:1px;background:#5c7592}.hero-visual{position:relative;min-width:0;overflow:hidden}.hero-visual>img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:70% center}.hero-visual::after{content:'';position:absolute;inset:55% 0 0;background:linear-gradient(transparent,rgba(3,26,54,.62));pointer-events:none}.hero-visual figcaption{position:absolute;z-index:1;bottom:28px;left:32px;right:32px;display:flex;justify-content:space-between;gap:15px;font-size:12px;letter-spacing:.12em;color:#fff}.hero-visual figcaption span{opacity:.75}.section-wrap{max-width:1600px;margin:auto;padding:105px var(--gutter)}.section-label{display:flex;gap:28px;color:var(--blue);margin-bottom:42px}.section-label>span{font-weight:450;letter-spacing:0;color:#7890a7}.company-content{display:grid;grid-template-columns:1fr 1fr;gap:80px}h2{font-size:clamp(36px,3.3vw,54px);letter-spacing:-.045em;line-height:1.15}.muted{color:#8190a0}.company-text{max-width:550px}.company-text p+p{margin-top:22px;color:var(--gray)}.large-copy{font-size:21px;line-height:1.65;letter-spacing:-.015em}.focus{background:var(--pale)}.focus-header{display:flex;justify-content:space-between;gap:60px;align-items:flex-end;margin-bottom:54px}.focus-header>p{max-width:365px;color:var(--gray)}.expertise{border-top:1px solid #b8c9d7}.expertise details{border-bottom:1px solid #b8c9d7}.expertise summary{list-style:none;display:grid;grid-template-columns:65px 1fr 1fr 24px;align-items:center;gap:24px;padding:29px 0;cursor:pointer}.expertise summary::-webkit-details-marker{display:none}.expertise summary:hover .expertise-title{color:var(--blue)}.expertise-number{color:#74899c;font-size:14px}.expertise-title{font-size:27px;letter-spacing:-.025em}.expertise-subtitle{font-size:15px;color:var(--gray)}.plus{position:relative;width:20px;height:20px;display:block}.plus::before,.plus::after{content:'';position:absolute;background:var(--blue)}.plus::before{left:1px;right:1px;height:1px;top:9px}.plus::after{top:1px;bottom:1px;width:1px;left:9px;transition:transform .2s}details[open] .plus::after{transform:rotate(90deg)}.expertise-body{padding:0 50px 30px 89px;max-width:920px;color:var(--gray);font-size:16px}.expertise-tags{display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:22px;color:var(--blue);font-size:13px}.approach{background:var(--blue);color:white}.approach .section-label{color:#d4e9fa}.approach .section-label>span{color:#9ec5e6}.approach-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:70px}.approach-heading>p{max-width:355px;color:#d2e2f1}.process{margin-top:64px;display:grid;grid-template-columns:repeat(3,1fr);gap:50px}.process article{border-top:1px solid #5b83b2;padding-top:24px}.process .step{font-size:13px;letter-spacing:.08em;color:#b7d9f2}.process h3{font-size:26px;letter-spacing:-.02em;margin:20px 0 12px}.process p{color:#d2e2f1;font-size:16px;max-width:340px}.statement{display:flex;align-items:center;justify-content:space-between;gap:60px;padding-top:75px;padding-bottom:75px}.statement p{font-size:clamp(24px,2.5vw,37px);letter-spacing:-.03em;line-height:1.4;max-width:780px}.statement>span{color:var(--blue);font-size:12px;letter-spacing:.12em;white-space:nowrap}.contact{background:#091e35;color:white}.contact .section-label{color:#b8d3ec}.contact-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:70px;align-items:end}.contact h2{font-size:clamp(42px,4.4vw,68px)}.contact h2 span{color:#73c7f0}.contact-note{max-width:410px;padding-left:24px;border-left:2px solid var(--cyan)}.contact-note .contact-label{font-size:12px;letter-spacing:.13em;color:#92b4d1;margin-bottom:14px}.contact-note p{color:#d1deea;font-size:16px}.site-footer{display:flex;align-items:center;justify-content:space-between;gap:25px;flex-wrap:wrap;padding:28px var(--gutter);max-width:1600px;margin:auto;color:var(--gray)}.footer-brand{width:190px}.footer-meta{display:flex;flex-wrap:wrap;gap:25px;font-size:12px}.footer-meta a{text-decoration:underline;text-underline-offset:5px}.footer-meta a:hover{color:var(--blue)}
@media(min-width:1550px){.hero-copy{padding-top:85px;padding-bottom:32px}.hero{min-height:730px}}
@media(max-width:1100px){.brand{width:210px}nav{gap:25px}.hero{min-height:600px;grid-template-columns:1.1fr 1fr}.hero-copy{padding-top:50px}.hero-visual figcaption{left:22px;right:22px}.hero-visual figcaption span{display:none}h1{font-size:clamp(44px,4.9vw,62px)}.hero-bottom{font-size:12px;gap:12px}.company-content{gap:45px}.expertise summary{grid-template-columns:40px 1.1fr 1fr 22px;gap:18px}.expertise-title{font-size:24px}.expertise-body{padding-left:58px}.section-wrap{padding-top:80px;padding-bottom:80px}.approach-heading{gap:40px}.process{gap:30px}}
@media(max-width:760px){html{scroll-padding-top:92px}.header-inner{padding-top:18px;padding-bottom:18px}.brand{width:204px}.menu-toggle{display:flex;align-items:center;gap:12px;border:0;background:none;color:var(--navy);padding:8px 0 8px 10px;font-size:14px}.menu-lines{width:20px;height:12px;border-top:1px solid currentColor;border-bottom:1px solid currentColor}nav{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);padding:15px var(--gutter) 25px;flex-direction:column;align-items:stretch;gap:8px}nav.is-open{display:flex}nav a{padding:9px 0;font-size:16px}.hero{grid-template-columns:1fr;min-height:0}.hero-copy{padding:44px var(--gutter) 28px}h1{font-size:clamp(44px,8.5vw,64px)}.eyebrow{font-size:12px;letter-spacing:.12em;margin-bottom:26px}.hero-description{font-size:16px}.hero-bottom{padding-top:34px;font-size:12px}.hero-visual{height:360px}.hero-visual>img{object-position:70% 45%}.hero-visual figcaption{bottom:22px;left:var(--gutter);right:var(--gutter)}.hero-visual figcaption span{display:block}.section-wrap{padding-top:64px;padding-bottom:64px}.section-label{margin-bottom:30px;font-size:12px;gap:20px}.company-content{grid-template-columns:1fr;gap:28px}.company-text{max-width:100%}.large-copy{font-size:20px}h2{font-size:38px}.focus-header,.approach-heading{display:block;margin-bottom:35px}.focus-header>p,.approach-heading>p{margin-top:23px;max-width:100%}.expertise summary{grid-template-columns:25px 1fr 20px;gap:13px;padding:24px 0}.expertise-title{font-size:23px}.expertise-subtitle{grid-column:2;grid-row:2;font-size:14px}.plus{grid-column:3;grid-row:1 / span 2}.expertise-body{padding:0 14px 25px 38px}.expertise-tags{font-size:12px;gap:8px 18px}.process{grid-template-columns:1fr;gap:30px;margin-top:40px}.process article{position:relative;padding-left:44px;padding-top:22px}.process .step{position:absolute;left:0;top:27px}.process h3{margin:0 0 8px;font-size:25px}.process p{max-width:none}.statement{align-items:flex-start;flex-direction:column;gap:24px;padding-top:45px;padding-bottom:45px}.statement p{font-size:29px}.statement>span{font-size:12px}.contact-grid{grid-template-columns:1fr;gap:34px}.contact h2{font-size:48px}.contact-note{max-width:100%}.site-footer{padding-top:27px;padding-bottom:27px;gap:22px}.footer-brand{width:180px}.footer-meta{font-size:12px;gap:15px}}
@media(max-width:370px){.brand{width:172px}.header-inner{gap:12px}.hero-copy{padding-top:35px}h1{font-size:41px}.hero-visual{height:300px}.hero-bottom{letter-spacing:.08em;font-size:12px;gap:8px}.hero-visual figcaption{font-size:12px}.expertise-title{font-size:21px}.contact h2{font-size:42px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}

/* Preserve every brand image's intrinsic proportions, including the footer. */
img{height:auto}
[hidden]{display:none!important}
h4{font-weight:500;margin:0}
.header-inner{gap:30px}
.site-header{background:#fff}
#navigation{gap:30px}
#navigation .nav-contact{padding:10px 19px;border:1px solid var(--line)}
#navigation .nav-contact::after{display:none}
#navigation .nav-contact:hover{background:var(--pale)}
.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:22px;margin-top:31px}
.hero-actions .button-white{margin-top:0}
.text-link{display:inline-block;color:var(--blue);font-size:14px;font-weight:600;line-height:1.6;text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px;padding:6px 0}
.text-link:hover{color:#126797}
.light-link,.light-link:hover{color:#fff}
.scope-note{display:flex;align-items:center;justify-content:space-between;gap:32px;margin-top:30px}
.scope-note p{max-width:610px;color:var(--gray);font-size:15px}
.scope-note .text-link{flex-shrink:0}
.projects-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:50px;margin-bottom:45px}
.projects-heading>p{max-width:310px;color:var(--gray)}
.portfolio-empty{display:grid;grid-template-columns:.9fr 1.1fr;border:1px solid var(--line)}
.portfolio-brand{background:var(--pale);min-height:320px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:25px;padding:40px}
.portfolio-brand img{width:112px;height:auto;mix-blend-mode:multiply}
.portfolio-brand span{color:var(--gray);font-size:12px;letter-spacing:.17em}
.portfolio-message{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:48px 50px}
.portfolio-message .eyebrow{color:var(--blue);margin-bottom:19px}
.portfolio-message h3{font-size:31px;line-height:1.25;letter-spacing:-.035em}
.portfolio-message>p:not(.eyebrow){margin:19px 0 22px;color:var(--gray);max-width:450px}
.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}
.project-card{min-width:0;border:1px solid var(--line);background:white;align-self:start}
.project-visual{aspect-ratio:3/2;overflow:hidden;background:var(--pale)}
.project-visual img{width:100%;height:100%;object-fit:cover}
.project-visual-text{display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--line);color:var(--blue);font-size:13px;letter-spacing:.12em}
.project-body{padding:30px}
.project-sector{font-size:13px;letter-spacing:.07em;color:var(--blue);margin-bottom:13px}
.project-body h3{font-size:28px;line-height:1.25;letter-spacing:-.025em;overflow-wrap:anywhere}
.project-summary{color:var(--gray);margin-top:16px}
.project-facts{margin:24px 0 0;padding-top:19px;border-top:1px solid var(--line);font-size:14px}
.project-facts>div{display:grid;grid-template-columns:80px minmax(0,1fr);gap:20px;padding:5px 0}
.project-facts dt{color:var(--gray)}
.project-facts dd{margin:0;overflow-wrap:anywhere}
.project-details{margin-top:24px;border-top:1px solid var(--line);padding-top:16px}
.project-details summary{cursor:pointer;color:var(--blue);font-weight:600;font-size:14px;padding:8px 0}
.project-details>div{margin-top:20px}
.project-details h4{font-size:16px;margin-bottom:8px}
.project-details p{color:var(--gray);white-space:pre-line}
.contact-intro{max-width:510px;color:#d1deea;margin-top:25px}
.contact-email{font-size:clamp(20px,2vw,28px);line-height:1.45;overflow-wrap:anywhere;color:#fff;text-decoration:underline;text-underline-offset:7px}
#contact-phone{margin-top:18px}
.inquiry-guide{margin-top:65px;padding-top:30px;border-top:1px solid #3e546b}
.inquiry-guide>h3{font-size:20px;margin-bottom:26px}
.inquiry-guide ol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:35px;list-style:none;padding:0;margin:0}
.inquiry-guide li{display:flex;align-items:baseline;gap:16px}
.inquiry-guide li>span{font-size:13px;color:#91b4d2}
.inquiry-guide h4{font-size:18px;color:white;margin-bottom:8px}
.inquiry-guide li p{font-size:15px;color:#c3d4e3}
.site-footer{display:block;padding-top:53px;padding-bottom:25px}
.footer-main{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:55px;padding-bottom:40px}
.footer-brand{display:block;width:230px;max-width:100%}
.footer-brand img{width:100%;height:auto;aspect-ratio:968 / 236;object-fit:contain}
.footer-identity>p{font-size:14px;line-height:1.65;margin-top:22px}
.footer-label{font-size:12px;letter-spacing:.14em;color:var(--blue);font-weight:600;margin-bottom:16px}
.footer-directory>div{display:grid;grid-template-columns:1fr 1fr;gap:9px 18px}
.footer-directory a,.footer-connect>a{font-size:14px;padding:3px 0}
.footer-connect>a{display:block;overflow-wrap:anywhere}
.footer-main a:hover{color:var(--blue);text-decoration:underline;text-underline-offset:4px}
.footer-meta{justify-content:space-between;border-top:1px solid var(--line);padding-top:23px;font-size:13px}
@media(max-width:1100px){#navigation{gap:20px}.portfolio-message{padding:35px}.portfolio-brand{min-height:300px}.footer-main{gap:32px}.scope-note p{max-width:55%}}
@media(max-width:900px) and (min-width:761px){.header-inner{gap:20px}.brand{width:190px}#navigation{gap:15px}#navigation .nav-contact{padding:8px 12px}}
@media(max-width:760px){
  #navigation{gap:8px}#navigation .nav-contact{padding:9px 0;border:0}
  .hero-actions{gap:20px}.scope-note{display:block}.scope-note p{max-width:none}.scope-note .text-link{margin-top:12px}
  .projects-heading{display:block;margin-bottom:30px}.projects-heading>p{max-width:none;margin-top:23px}
  .portfolio-empty{grid-template-columns:1fr}.portfolio-brand{min-height:210px;padding:28px;gap:18px}.portfolio-brand img{width:86px}
  .portfolio-message{padding:30px 25px 34px}.portfolio-message h3{font-size:28px}.portfolio-message>p:not(.eyebrow){margin:17px 0 19px}
  .project-grid{grid-template-columns:1fr;gap:25px}.project-body{padding:25px}.project-body h3{font-size:26px}
  .inquiry-guide{margin-top:42px}.inquiry-guide ol{grid-template-columns:1fr;gap:23px}.inquiry-guide li{gap:20px}.inquiry-guide h4{font-size:18px}
  .footer-main{grid-template-columns:1fr 1fr;gap:30px 22px;padding-bottom:32px}.footer-identity{grid-column:1/-1}.footer-brand{width:225px}.footer-directory>div{grid-template-columns:1fr;gap:7px}.footer-meta{font-size:12px;gap:15px}.site-footer{padding-top:38px}
}
@media(max-width:370px){.header-inner{gap:12px}.footer-main{grid-template-columns:1fr}.footer-identity{grid-column:auto}.hero-actions{gap:13px}.portfolio-message{padding:25px 20px}.hero-actions .button{padding-left:17px;padding-right:17px}.contact h2{font-size:40px}}

