/* Contact: the shared navy identity, with a quieter place to start a conversation. */
.nx-contact-page { --nc-ink:#102a50; --nc-muted:#536b88; --nc-line:#dce5f2; --nc-blue:#a8bfff; font-family:"Manrope",sans-serif; overflow-x:clip; }
.nx-contact-page .loader-wrap { display:none !important; }
.nx-contact-page.loaded { height:auto !important; overflow:clip visible !important; }
.nx-contact-page :is(h2,h3,h4) { font-family:inherit; word-break:normal; }
.nx-contact-page main :is(a,button,input,select,textarea):focus-visible { outline:3px solid #729ee5; outline-offset:5px; }
.nx-contact-hero .nx-page-banner-layout { grid-template-columns:minmax(0,1.18fr) minmax(0,1fr); gap:68px; padding-bottom:62px; }
.nx-contact-hero h1 { font-size:clamp(48px,5.2vw,74px); }
.nx-contact-hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:24px; margin-top:30px; }
.nx-contact-button { display:inline-flex; align-items:center; justify-content:space-between; gap:24px; min-height:54px; padding:16px 23px; border:1px solid transparent; border-radius:12px; background:#dce8ff; color:#102a50; font:800 14px/1.5 "Manrope",sans-serif; text-decoration:none; transition:background 220ms,transform 220ms,box-shadow 220ms; }
.nx-contact-button:hover { color:#102a50; background:#fff; transform:translateY(-2px); box-shadow:0 10px 26px #020c2026; }
.nx-contact-text-link { color:#9bb1d3; font-size:12px; line-height:1.8; }
.nx-contact-text-link span { display:block; color:#eef3ff; font-size:14px; font-weight:700; }
.nx-contact-text-link i { margin-left:10px; }
.nx-contact-text-link:hover { color:#fff; }
.nx-contact-portrait { position:relative; padding:16px 18px 36px 0; min-width:0; }
.nx-contact-photo { position:relative; overflow:hidden; border:1px solid #b5ceff40; border-radius:80px 20px 80px 20px; aspect-ratio:1.32; background:#173459; box-shadow:0 28px 70px #020c2040; }
.nx-contact-photo > img { display:block; width:100%; height:100%; object-fit:cover; object-position:50% center; }
.nx-contact-photo::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,#04132ff2,transparent 65%); pointer-events:none; }
.nx-contact-photo-note { position:absolute; z-index:1; bottom:27px; left:26px; right:22px; display:flex; align-items:center; gap:14px; color:#d6e0f1; font-size:12px; line-height:1.7; }
.nx-contact-photo-note strong { display:block; color:#fff; font-size:16px; font-weight:700; }
.nx-contact-note-icon { display:grid; place-items:center; flex:0 0 46px; height:46px; border:1px solid #c8dcff55; border-radius:14px; background:#c9dcff10; font-size:22px; }
.nx-contact-orbit { position:absolute; width:280px; height:280px; right:-26px; top:-20px; border:1px solid #acc8ff30; border-radius:50%; animation:nc-orbit 32s linear infinite; }
.nx-contact-orbit::before { content:""; position:absolute; inset:18px; border:1px dashed #acc8ff30; border-radius:50%; }
.nx-contact-orbit span { position:absolute; top:-4px; left:50%; width:7px; height:7px; border-radius:50%; background:#a8c1ff; box-shadow:0 0 20px #a8c1ff80; }
.nx-contact-portrait-tag { position:absolute; bottom:6px; right:28px; display:flex; align-items:center; gap:9px; color:#9ab3d9; font-size:9px; font-weight:700; letter-spacing:.16em; }
.nx-contact-portrait-tag > span { width:6px; height:6px; border-radius:50%; background:#a8bfff; box-shadow:0 0 0 5px #a8bfff14; }
.nx-contact-hero .nx-page-banner-bottom a { display:flex; align-items:center; gap:24px; color:#b5caed; }
.nx-contact-hero .nx-page-banner-bottom a:hover { color:#fff; }
.nx-contact-hero.is-ready .nx-contact-photo { animation:nc-photo-in 1s .15s both; }
.nx-contact-hero.is-away .nx-contact-orbit { animation-play-state:paused; }
.nx-contact-body { background:radial-gradient(ellipse at 0 26%,#e7effcaa,transparent 40%),#f7f9fd; padding:52px 0 96px; color:var(--nc-ink); }
.nx-contact-container { max-width:1320px; margin:auto; padding-inline:28px; }
.nx-contact-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; scroll-margin-top:120px; }
.nx-contact-method { position:relative; isolation:isolate; display:flex; flex-direction:column; min-width:0; overflow:hidden; padding:28px; border:1px solid var(--nc-line); border-radius:22px; background:#fff; box-shadow:0 12px 38px #102a5004; transition:border-color 250ms,box-shadow 250ms; }
.nx-contact-method::before { content:""; position:absolute; z-index:-1; inset:0; background:radial-gradient(240px circle at var(--nc-x,50%) var(--nc-y,0%),#dce9ff90,transparent 90%); opacity:0; transition:opacity 300ms; }
.nx-contact-method-top { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:26px; }
.nx-contact-method-icon { display:grid; place-items:center; width:48px; height:48px; border:1px solid #d4e0f3; border-radius:15px; background:#edf3ff; color:#4169a5; font-size:21px; }
.nx-contact-index { color:#7390b5; font-size:10px; font-weight:700; letter-spacing:.15em; }
.nx-contact-method h2 { margin:0 0 11px; color:var(--nc-ink); font-size:22px; line-height:1.35; font-weight:800; letter-spacing:-.035em; }
.nx-contact-method p { flex:1; margin:0 0 24px; color:var(--nc-muted); font-size:14px; line-height:1.8; }
.nx-contact-method > a { display:flex; align-items:center; justify-content:space-between; gap:10px; color:#214a83; font-size:15px; line-height:1.6; font-weight:800; overflow-wrap:anywhere; }
.nx-contact-method > a i { flex-shrink:0; transition:transform 250ms; }
.nx-contact-method > a:hover i { transform:translate(2px,-2px); }
.nx-contact-method > .nx-contact-alternate,.nx-contact-method-foot { display:block; margin-top:7px; color:#7187a5; font-size:12px; line-height:1.6; font-weight:500; }
.nx-contact-workspace { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.3fr); align-items:start; gap:32px; margin-top:64px; scroll-margin-top:124px; }
.nx-contact-journey { position:relative; isolation:isolate; overflow:hidden; padding:40px; border:1px solid #254872; border-radius:28px; background:radial-gradient(ellipse at 100% 0,#23487777,transparent 65%),#0b203e; color:#bdcee6; }
.nx-contact-kicker { display:block; color:#587aaa; font-size:10px; font-weight:800; letter-spacing:.16em; line-height:1.8; }
.nx-contact-journey .nx-contact-kicker { color:#a8c0eb; }
.nx-contact-journey h2 { margin:19px 0 20px; color:#fff; font-size:clamp(30px,3vw,40px); line-height:1.2; font-weight:800; letter-spacing:-.045em; }
.nx-contact-journey h2 em { color:#afc6ff; font-style:normal; }
.nx-contact-journey > p { margin:0; color:#bdcee6; font-size:15px; line-height:1.85; }
.nx-contact-route { height:100px; margin:14px -4px 10px; }
.nx-contact-route svg { display:block; width:100%; height:100%; overflow:visible; }
.nx-contact-route path { stroke:#97b6ed40; stroke-width:1; }
.nx-contact-route .nx-contact-route-flow { stroke:#b7cdff; stroke-dasharray:20 130; animation:nc-flow 8s linear infinite; animation-play-state:paused; }
.nx-contact-journey.nx-contact-visible .nx-contact-route-flow { animation-play-state:running; }
.nx-contact-route circle { fill:#adc6ff; stroke:#263e64; stroke-width:5; }
.nx-contact-journey h3 { margin:0 0 24px; color:#eff4ff; font-size:17px; font-weight:700; }
.nx-contact-steps { display:grid; gap:25px; padding:0; margin:0; list-style:none; }
.nx-contact-steps li { display:flex; align-items:flex-start; gap:16px; margin:0; }
.nx-contact-steps li > span { display:grid; place-items:center; flex:0 0 32px; height:32px; border:1px solid #9fbdf044; border-radius:10px; color:#a8c1f0; background:#afcaff09; font-size:11px; font-weight:800; }
.nx-contact-steps h4 { margin:0 0 7px; color:#e6eeff; font-size:14px; line-height:1.5; font-weight:700; }
.nx-contact-steps p { margin:0; color:#a5b9d7; font-size:13px; line-height:1.8; }
.nx-contact-journey-link { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:32px; padding-top:23px; border-top:1px solid #a9c5f32b; color:#c6d7ff; font-size:12px; line-height:1.7; font-weight:700; }
.nx-contact-journey-link:hover { color:#fff; }
.nx-contact-form-card { min-width:0; padding:40px; border:1px solid var(--nc-line); border-radius:28px; background:#fff; box-shadow:0 22px 60px #102a5007; }
.nx-contact-form-heading { padding-bottom:27px; margin-bottom:28px; border-bottom:1px solid #e3eaf5; }
.nx-contact-form-heading h2 { margin:12px 0 12px; color:var(--nc-ink); font-size:clamp(28px,3vw,38px); line-height:1.25; font-weight:800; letter-spacing:-.045em; }
.nx-contact-form-heading p { margin:0; color:var(--nc-muted); font-size:14px; line-height:1.8; }
.nx-contact-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 20px; }
.nx-contact-field { min-width:0; }
.nx-contact-field-wide { grid-column:1/-1; }
.nx-contact-field label { display:flex; flex-wrap:wrap; align-items:baseline; gap:6px; margin:0 0 10px; color:#2b4b75; font-size:13px; font-weight:700; line-height:1.6; }
.nx-contact-field label > span { color:#5f7cac; }
.nx-contact-field label small { margin-left:auto; color:#7a8ba4; font-size:10px; font-weight:500; }
.nx-contact-field :is(input,select,textarea) { display:block; width:100%; min-width:0; height:54px; margin:0; padding:14px 15px; border:1px solid #d7e1f0; border-radius:11px; background:#f8faff; color:#193b65; font:400 14px/1.7 "Manrope",sans-serif; box-shadow:none; transition:border-color 220ms,background 220ms,box-shadow 220ms; }
.nx-contact-field select { padding-right:28px; text-overflow:ellipsis; cursor:pointer; }
.nx-contact-field textarea { min-height:148px; height:148px; resize:vertical; }
.nx-contact-field :is(input,textarea)::placeholder { color:#8999b0; opacity:1; }
.nx-contact-field :is(input,select,textarea):focus { background:#fff; border-color:#84a5d8; box-shadow:0 0 0 4px #729ee512; }
.nx-contact-form-bottom { margin-top:22px; }
.nx-contact-form-bottom p { margin:0 0 22px; color:#7a8ca5; font-size:11px; line-height:1.8; }
.nx-contact-form-bottom .nx-contact-button { width:100%; max-width:none; background:#173d70; color:#fff; border-color:#173d70; }
.nx-contact-form-bottom .nx-contact-button:hover { background:#244e8b; }
.nx-contact-form-bottom .nx-contact-button:disabled { opacity:.7; cursor:wait; transform:none; }
.nx-contact-form-signoff { display:flex; justify-content:center; align-items:center; gap:9px; padding-top:23px; margin-top:23px; border-top:1px solid #e6edf7; color:#7a8da8; font-size:11px; line-height:1.6; }
.nx-contact-form-signoff > span { flex:0 0 5px; height:5px; border-radius:50%; background:#7d9fd6; }
.nx-contact-page #form-messages:empty { display:none; }
.nx-contact-page #form-messages { margin-top:20px; padding:15px 17px; border:1px solid #c3d6ef; border-radius:12px; background:#edf4ff; color:#224c81; font-size:14px; line-height:1.7; }
.nx-contact-page #form-messages.error { border-color:#edcdcf; color:#8a333b; background:#fff5f5; }
.nx-contact-page #form-messages.success { border-color:#bcdacc; color:#245d4d; background:#eff8f3; }
.nx-contact-location { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); margin-top:64px; overflow:hidden; border:1px solid #d7e3f4; border-radius:28px; background:linear-gradient(130deg,#edf3ff,#e4edfb); scroll-margin-top:124px; }
.nx-contact-location-copy { padding:44px; }
.nx-contact-location h2 { margin:18px 0; color:var(--nc-ink); font-size:34px; line-height:1.22; font-weight:800; letter-spacing:-.04em; }
.nx-contact-location h2 em { color:#5679b2; font-style:normal; }
.nx-contact-location p { color:var(--nc-muted); font-size:14px; line-height:1.9; margin:0 0 22px; }
.nx-contact-location address { margin:0 0 24px; color:#2e5284; font-size:14px; font-weight:700; line-height:1.8; font-style:normal; }
.nx-contact-location-copy > a { display:inline-flex; align-items:center; gap:16px; color:#214c88; font-size:12px; font-weight:800; line-height:1.7; }
.nx-contact-map { min-height:420px; background:#d7e2f2; border-left:1px solid #cddbf0; }
.nx-contact-map iframe { width:100%; height:100%; min-height:420px; }
.nx-contact-motion .nx-contact-reveal { opacity:0; transform:translateY(26px); transition:opacity 700ms ease,transform 900ms cubic-bezier(.16,1,.3,1); }
.nx-contact-motion .nx-contact-visible { opacity:1; transform:none; }
@keyframes nc-orbit { to { transform:rotate(360deg); } }
@keyframes nc-flow { to { stroke-dashoffset:-450; } }
@keyframes nc-photo-in { from { opacity:0; transform:translateY(18px) scale(.98); } to { opacity:1; transform:none; } }
@media(hover:hover) and (pointer:fine) { .nx-contact-method:hover { border-color:#adc6ed; box-shadow:0 18px 42px #102a500a; } .nx-contact-method:hover::before { opacity:1; } }
@media(max-width:1199px) { .nx-contact-hero .nx-page-banner-layout { gap:38px; } .nx-contact-workspace { grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:24px; } .nx-contact-journey,.nx-contact-form-card { padding:30px; } .nx-contact-method { padding:24px; } .nx-contact-method > a { font-size:13px; } }
@media(max-width:991px) { .nx-contact-hero h1 { font-size:52px; } .nx-contact-hero .nx-page-banner-layout { gap:28px; } .nx-contact-hero-actions { gap:20px; } .nx-contact-photo { aspect-ratio:.88; border-radius:55px 16px 55px 16px; } .nx-contact-photo-note { left:18px; bottom:22px; gap:10px; } .nx-contact-photo-note strong { font-size:14px; } .nx-contact-note-icon { display:none; } .nx-contact-options { gap:14px; } .nx-contact-method { padding:22px 18px; } .nx-contact-method h2 { font-size:20px; } .nx-contact-method > a { font-size:12px; } .nx-contact-workspace { grid-template-columns:minmax(0,1fr); gap:28px; } .nx-contact-journey { padding:36px; } .nx-contact-journey > p { max-width:580px; } .nx-contact-route { max-width:370px; height:85px; margin:0 0 8px; } .nx-contact-steps { grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; } .nx-contact-steps li { flex-direction:column; gap:13px; } .nx-contact-steps li > span { flex-basis:32px; width:32px; } .nx-contact-location-copy { padding:32px; } .nx-contact-location h2 { font-size:29px; } }
@media(max-width:767px) { .nx-contact-container { padding-inline:20px; } .nx-contact-hero .nx-page-banner-layout { grid-template-columns:minmax(0,1fr); gap:36px; padding-bottom:35px; } .nx-contact-hero h1 { font-size:clamp(43px,9vw,58px); } .nx-contact-hero .nx-page-eyebrow { font-size:9px; letter-spacing:.12em; } .nx-contact-hero-actions { gap:22px; } .nx-contact-hero-actions .nx-contact-button { padding:15px 19px; gap:15px; font-size:13px; } .nx-contact-photo { aspect-ratio:1.4; } .nx-contact-portrait { padding:0 12px 34px 0; } .nx-contact-photo-note { left:22px; } .nx-contact-note-icon { display:grid; width:36px; height:36px; flex-basis:36px; border-radius:11px; font-size:18px; } .nx-contact-photo-note { font-size:10px; } .nx-contact-photo-note strong { font-size:13px; } .nx-contact-hero .nx-page-banner-bottom { align-items:flex-start; flex-direction:column; justify-content:center; gap:10px; padding-block:18px; } .nx-contact-body { padding:32px 0 60px; } .nx-contact-options { grid-template-columns:minmax(0,1fr); gap:16px; } .nx-contact-method { padding:25px; } .nx-contact-method-top { margin-bottom:20px; } .nx-contact-method h2 { font-size:23px; } .nx-contact-method p { margin-bottom:18px; } .nx-contact-method > a { font-size:15px; } .nx-contact-workspace,.nx-contact-location { margin-top:36px; } .nx-contact-journey,.nx-contact-form-card { padding:28px 24px; border-radius:22px; } .nx-contact-journey h2 { font-size:35px; } .nx-contact-steps { grid-template-columns:minmax(0,1fr); gap:24px; } .nx-contact-steps li { flex-direction:row; gap:16px; } .nx-contact-steps li > span { flex:0 0 32px; } .nx-contact-fields { grid-template-columns:minmax(0,1fr); gap:20px; } .nx-contact-field :is(input,select,textarea) { font-size:16px; } .nx-contact-form-heading { padding-bottom:23px; margin-bottom:24px; } .nx-contact-form-signoff { font-size:10px; } .nx-contact-location { grid-template-columns:minmax(0,1fr); border-radius:22px; } .nx-contact-location-copy { padding:30px 25px; } .nx-contact-location h2 { font-size:34px; } .nx-contact-map { border-left:0; border-top:1px solid #cddbf0; min-height:300px; height:300px; } .nx-contact-map iframe { min-height:300px; } }
@media(prefers-reduced-motion:reduce) { .nx-contact-page main *, .nx-contact-page main *::before,.nx-contact-page main *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; } .nx-contact-motion .nx-contact-reveal { opacity:1; transform:none; } }
