:root{--ink:#091520;--blue:#164d70;--blue-dark:#0a2639;--steel:#607483;--paper:#f1f3f2;--white:#fbfcfb;--line:#c9d0d2;--acid:#9eb9c8}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"Segoe UI",Arial,sans-serif;font-size:16px;line-height:1.55}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button{font:inherit}
.skip-link{position:fixed;left:14px;top:14px;z-index:100;padding:8px 12px;background:#fff;transform:translateY(-160%)}
.skip-link:focus{transform:none}
.site-header{width:min(1380px,calc(100% - 64px));height:96px;margin:auto;display:flex;align-items:center;border-bottom:1px solid #adb9bd;gap:38px}
.brand{width:216px;display:flex;align-items:center;gap:11px}
.brand-mark{width:52px;height:52px;display:block;position:relative;overflow:hidden;flex:0 0 auto;background:url("../media/north-solutions-logo-transparent.png") center -51px/204px auto no-repeat}
.brand-mark img{display:none}
.brand-type{display:flex;flex-direction:column;line-height:1}
.brand-type b{font-size:1rem;letter-spacing:.24em}
.brand-type small{margin-top:6px;font-size:.49rem;letter-spacing:.37em;color:#4f6d7e}
.site-header nav{display:flex;align-items:center;gap:34px;margin-left:auto}
.site-header nav a{font-size:.78rem;font-weight:650;color:#354b58}
.site-header nav a::after{content:"";display:block;width:0;height:1px;margin-top:4px;background:#183f59;transition:width .2s ease}
.site-header nav a:hover::after{width:100%}
.header-right{display:flex;align-items:center;margin-left:36px}
.language-switch{display:flex;align-items:center;gap:5px;color:#7b898f}
.language-switch button{border:0;padding:3px;background:none;color:#7b898f;font-size:.68rem;font-weight:700;cursor:pointer}
.language-switch button[aria-pressed="true"]{color:#0b1a24;text-decoration:underline;text-underline-offset:4px}
.menu-toggle{display:none;width:42px;height:42px;padding:10px;border:1px solid #aebbc0;background:transparent;cursor:pointer}
.menu-toggle span{height:1px;background:#122936;display:block;margin:6px 0}
.hero{width:min(1380px,calc(100% - 64px));min-height:680px;margin:0 auto 110px;display:grid;grid-template-columns:1.02fr .98fr;border-bottom:1px solid #adb9bd}
.hero-copy{padding:90px 60px 70px 0;display:flex;flex-direction:column}
.location{margin:0 0 58px;display:flex;align-items:center;gap:10px;color:#516a78;font-size:.62rem;font-weight:700;letter-spacing:.14em}
.location span{width:34px;height:1px;background:#6e838e}
.hero h1{margin:0;font-size:clamp(4rem,6.6vw,7.3rem);line-height:.9;font-weight:630;letter-spacing:-.07em}
.hero h1 span{display:block}
.hero h1 span:nth-child(2){color:#42687e}
.hero-bottom{display:grid;grid-template-columns:1.4fr .6fr;gap:30px;align-items:end;margin-top:auto;padding-top:60px}
.hero-bottom p{max-width:560px;margin:0;color:#465d69;font-size:.93rem;line-height:1.75}
.arrow-link{padding:0 0 9px;display:flex;justify-content:space-between;gap:30px;border-bottom:1px solid #1c394a;font-size:.78rem;font-weight:700}
.hero-identity{position:relative;min-height:680px;overflow:hidden;background:#e5e9e8;border-left:1px solid #adb9bd}
.identity-blue{position:absolute;left:0;top:0;width:34%;height:100%;background:#214f6a}
.identity-logo{position:absolute;left:50%;top:50%;width:78%;height:62%;transform:translate(-44%,-54%);display:grid;place-items:center;background:#f8f9f7;box-shadow:24px 26px 0 rgba(8,31,45,.13)}
.identity-logo img{width:82%}
.identity-note{position:absolute;left:12%;right:6%;bottom:28px;display:flex;justify-content:space-between;color:#314d5d;font-size:.56rem;font-weight:700;letter-spacing:.16em}
.identity-note span:first-child{color:#d4e1e7}
.identity-cut{position:absolute;width:180px;height:26px;right:-34px;top:74px;background:#9ab0bb;transform:rotate(-38deg)}
.statement{width:min(1180px,calc(100% - 64px));margin:0 auto 145px;display:grid;grid-template-columns:180px 1fr;gap:60px}
.statement-side{padding-top:14px;display:flex;flex-direction:column;color:#58717f;font-size:.61rem;font-weight:700;letter-spacing:.15em}
.statement-side span:first-child{margin-bottom:22px;font-size:.72rem;color:#172b37}
.statement p{max-width:950px;margin:0;font-size:clamp(2.5rem,4.6vw,5rem);line-height:1.08;letter-spacing:-.047em;text-wrap:balance}
.work{width:min(1380px,calc(100% - 64px));margin:0 auto 140px}
.section-head{display:grid;grid-template-columns:80px 1fr;gap:38px;margin-bottom:52px;padding-top:22px;border-top:1px solid #9fadb2}
.section-head>span{font-size:.68rem;font-weight:700}
.section-head p{margin:0 0 18px;color:#59717f;font-size:.62rem;font-weight:700;letter-spacing:.16em}
.section-head h2{max-width:900px;margin:0;font-size:clamp(2.8rem,4.7vw,5.2rem);font-weight:600;line-height:1;letter-spacing:-.055em}
.work-layout{display:grid;grid-template-columns:1.12fr .88fr;grid-template-rows:1fr 1fr;gap:12px}
.work-main,.work-secondary{position:relative;overflow:hidden}
.work-main{grid-row:1/3;min-height:580px;padding:46px;display:flex;flex-direction:column;background:#dbe4e7;border-left:8px solid #1b4f6d}
.work-number{font-size:.66rem;font-weight:800;letter-spacing:.12em}
.work-copy{margin-top:auto}
.work h3{margin:0 0 18px;font-size:clamp(2rem,3.4vw,4rem);font-weight:600;line-height:1.04;letter-spacing:-.045em}
.work p{max-width:590px;margin:0;color:#455d6a;line-height:1.75}
.work-main ul{margin:42px 0 0;padding:17px 0 0;display:flex;flex-wrap:wrap;gap:18px;border-top:1px solid #a7b7bd;list-style:none;color:#47606e;font-size:.7rem;font-weight:700}
.work-secondary{min-height:284px;padding:34px 38px;background:#fbfcfb;border:1px solid #bdc8cb}
.work-secondary .work-number{margin-bottom:56px;color:#4d6c7c}
.work-secondary h3{font-size:2.2rem}
.work-secondary p{font-size:.84rem}
.work-secondary.dark{background:#102c3f;color:#f4f6f5;border-color:#102c3f}
.work-secondary.dark p,.work-secondary.dark .work-number{color:#aebfc7}
.companies{padding:120px max(32px,calc((100% - 1380px)/2));background:#0b202f;color:#f5f7f7}
.section-head.inverse{border-color:#617580}
.section-head.inverse p{color:#91a8b4}
.company{min-height:230px;display:grid;grid-template-columns:150px 1.25fr 1fr 60px;align-items:center;gap:32px;border-top:1px solid #617580;transition:background .2s ease,padding .2s ease}
.company:last-child{border-bottom:1px solid #617580}
.company:hover{padding:0 24px;background:#102a3c}
.company-label{align-self:stretch;padding:30px 0;display:flex;flex-direction:column;justify-content:space-between;color:#94a9b4;font-size:.62rem;font-weight:700;letter-spacing:.12em}
.company-label small{font-size:.52rem}
.company-name{display:flex;flex-direction:column;line-height:.86}
.company-name b{font-size:1rem;letter-spacing:.32em;color:#87a5b5}
.company-name strong{font-size:3.5rem;font-weight:560;letter-spacing:-.04em}
.company p{max-width:410px;margin:0;color:#9eb0b9;font-size:.85rem;line-height:1.7}
.company-open{font-size:1.6rem;text-align:right}
.company-guard{background:#071720}
.guard-name strong{color:#b8d9e8}
.principles{width:min(1180px,calc(100% - 64px));margin:145px auto;display:grid;grid-template-columns:.85fr 1.15fr;gap:110px}
.principles-title>span{display:block;padding-top:18px;border-top:1px solid #9fadb2;font-size:.68rem;font-weight:700}
.principles-title p{margin:46px 0 16px;color:#59717f;font-size:.62rem;font-weight:700;letter-spacing:.16em}
.principles-title h2{margin:0;font-size:clamp(3rem,5vw,5.8rem);font-weight:600;line-height:.98;letter-spacing:-.06em}
.principles-copy>p{margin:0 0 52px;font-size:1.26rem;line-height:1.7;color:#334d5b}
.principle-list{border-top:1px solid #9fadb2}
.principle-list div{display:grid;grid-template-columns:160px 1fr;gap:24px;padding:20px 0;border-bottom:1px solid #b8c2c5}
.principle-list b{font-size:.78rem}
.principle-list span{color:#5a707c;font-size:.78rem}
.contact{width:min(1380px,calc(100% - 64px));min-height:530px;margin:0 auto 28px;padding:80px;position:relative;overflow:hidden;display:flex;align-items:center;background:#d5e0e3;border-left:12px solid #174b69}
.contact-mark{position:absolute;right:-40px;top:-130px;color:rgba(28,75,101,.09);font-size:38rem;font-weight:700;line-height:1}
.contact-copy{max-width:760px;position:relative;z-index:1}
.contact-copy>span{font-size:.63rem;font-weight:700;letter-spacing:.17em;color:#4b6878}
.contact h2{margin:24px 0;font-size:clamp(3rem,5vw,5.7rem);font-weight:600;line-height:.97;letter-spacing:-.06em}
.contact p{max-width:610px;color:#465e6b;line-height:1.75}
.contact a{width:min(430px,100%);margin-top:42px;padding:17px 0 11px;display:flex;justify-content:space-between;border-bottom:1px solid #17384b;font-size:.85rem;font-weight:700}
.site-footer{width:min(1380px,calc(100% - 64px));min-height:150px;margin:auto;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:26px;color:#60737c;font-size:.67rem}
.footer-brand{width:190px}
.site-footer>p{text-align:center}
.footer-links{display:flex;justify-content:flex-end;gap:18px}
.reveal{opacity:0;transform:translateY(14px);transition:opacity .55s ease,transform .55s ease}
.reveal.is-visible{opacity:1;transform:none}
@media(max-width:1050px){.hero{grid-template-columns:1fr}.hero-copy{min-height:650px;padding-right:0}.hero-identity{min-height:620px;border-left:0;border-top:1px solid #adb9bd}.statement{grid-template-columns:120px 1fr}.work-layout{grid-template-columns:1fr}.work-main{grid-row:auto}.company{grid-template-columns:100px 1fr 1fr 40px}.principles{gap:60px}}
@media(max-width:760px){.site-header{width:calc(100% - 32px);height:80px;position:relative}.brand{width:180px}.brand-mark{width:44px;height:44px;background-position:center -43px;background-size:172px auto}.site-header nav{display:none;position:absolute;top:79px;left:0;right:0;z-index:20;padding:22px;flex-direction:column;align-items:flex-start;background:#f1f3f2;border:1px solid #aebbc0}.site-header.menu-open nav{display:flex}.header-right{margin-left:auto}.language-switch{display:none}.menu-toggle{display:block}.hero{width:calc(100% - 32px);margin-bottom:90px}.hero-copy{min-height:610px;padding:70px 0 48px}.location{margin-bottom:45px}.hero h1{font-size:clamp(3.7rem,18vw,6rem)}.hero-bottom{grid-template-columns:1fr;align-items:start}.hero-identity{min-height:490px}.identity-logo{width:82%;height:64%;transform:translate(-43%,-53%)}.identity-note{left:8%}.statement{width:calc(100% - 32px);margin-bottom:100px;grid-template-columns:1fr;gap:28px}.statement p{font-size:clamp(2.35rem,11vw,3.8rem)}.work{width:calc(100% - 32px);margin-bottom:100px}.section-head{grid-template-columns:42px 1fr;gap:18px}.work-main{min-height:520px;padding:30px 24px}.work-secondary{padding:28px 24px}.companies{padding:90px 16px}.company{min-height:310px;padding:26px 0;grid-template-columns:1fr 40px;gap:22px}.company:hover{padding:26px 12px}.company-label{grid-column:1/-1;align-self:auto;padding:0;flex-direction:row}.company-name,.company p{grid-column:1}.company-open{grid-column:2;grid-row:2/4}.company-name strong{font-size:3rem}.principles{width:calc(100% - 32px);margin:100px auto;grid-template-columns:1fr;gap:54px}.principle-list div{grid-template-columns:1fr;gap:6px}.contact{width:calc(100% - 32px);min-height:560px;padding:54px 26px;border-left-width:7px}.site-footer{width:calc(100% - 32px);padding:38px 0;grid-template-columns:1fr;text-align:center}.footer-brand{margin:auto}.site-footer>p{text-align:center}.footer-links{justify-content:center;flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}}
