/* About story: original copy, framed photography, and a consistent type scale. */
.nx-company { position: relative; overflow: hidden; padding: 96px 0 104px; background: #fff; color: #536b88; font-family: "Manrope", sans-serif; }
.nx-company .nx-company-container { max-width: 1320px; padding-inline: 28px; }
.nx-company-overview { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(0, 1fr); gap: 28px; align-items: stretch; }
.nx-company-photo-wrap { position: relative; min-width: 0; padding: 0 0 19px; }
.nx-company-photo { position: relative; height: 100%; min-height: 450px; overflow: hidden; border-radius: 26px 26px 80px 26px; background: #eaf0f8; transform-origin: center; }
.nx-company-photo img { display: block; width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; object-position: 49% center; transform: scale(1.055) translateY(var(--company-image-y, 0px)); }
.nx-company-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, #0c254c26, transparent 55%); pointer-events: none; }
.nx-company-photo-line { position: absolute; z-index: 1; inset: 13px; border: 1px solid #ffffff4d; border-radius: 17px 17px 66px 17px; pointer-events: none; }
.nx-company-photo-corner { position: absolute; z-index: 2; right: -7px; bottom: 0; display: grid; place-items: center; width: 68px; height: 68px; border: 7px solid #fff; border-radius: 50%; background: #eaf1ff; color: #315b9a; font-size: 22px; }
.nx-company-image-track { position: absolute; bottom: 2px; left: 2px; display: flex; gap: 5px; width: 90px; }
.nx-company-image-track span { width: 20px; height: 2px; background: #dce6f6; }
.nx-company-image-track span:first-child { width: 38px; background: #517bb9; }
.nx-company-glance { position: relative; isolation: isolate; overflow: hidden; margin-bottom: 19px; padding: 30px 28px 22px; border: 1px solid #28446d; border-radius: 26px; background: linear-gradient(145deg, #102b50, #071a35); box-shadow: 0 18px 45px #102a5009; }
.nx-company-glance-heading { position: relative; z-index: 1; display: flex; align-items: center; gap: 12px; padding-bottom: 24px; border-bottom: 1px solid #a8c7f129; }
.nx-company-glance-heading > span { width: 6px; height: 6px; flex: 0 0 6px; border-radius: 50%; background: #a4bfff; box-shadow: 0 0 0 5px #a4bfff12; }
.nx-company .nx-company-glance-heading h2 { margin: 0; color: #c7d8f7; font-family: inherit; font-size: 12px; font-weight: 700; line-height: 1.6; letter-spacing: .13em; }
.nx-company-glance dl { position: relative; z-index: 1; margin: 0; }
.nx-company-fact { position: relative; min-height: 88px; padding: 20px 0 18px 59px; border-bottom: 1px solid #a8c7f11c; }
.nx-company-fact:last-child { border: 0; padding-bottom: 4px; }
.nx-company-fact-icon { position: absolute; left: 0; top: 22px; display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid #97b9f12b; border-radius: 13px; background: #8cafff0f; color: #b5ccff; font-size: 19px; transition: background 240ms ease, transform 240ms ease; }
.nx-company-fact dt { margin: 0 0 5px; color: #9db5d9; font-size: 12px; font-weight: 500; line-height: 1.6; }
.nx-company-fact dd { margin: 0; color: #f1f6ff; font-size: 15px; font-weight: 600; line-height: 1.7; }
.nx-company-glance-orbit { position: absolute; z-index: -1; right: -150px; bottom: -150px; width: 330px; height: 330px; border: 1px solid #9bbcff14; border-radius: 50%; }
.nx-company-glance-orbit::after { content: ""; position: absolute; inset: 25px; border: 1px dashed #9bbcff17; border-radius: 50%; }
.nx-company-story { display: grid; grid-template-columns: minmax(0, .65fr) minmax(0, 1.65fr); gap: 64px; margin-top: 64px; }
.nx-company-section-heading { min-width: 0; }
.nx-company-rule { display: block; width: 38px; height: 2px; margin-bottom: 21px; border-radius: 2px; background: #507bb9; }
.nx-company .nx-company-section-heading h2 { max-width: 340px; margin: 0; color: #102a50; font-family: inherit; font-size: clamp(32px, 3.4vw, 44px); font-weight: 800; line-height: 1.15; letter-spacing: -.045em; word-break: normal; }
.nx-company-story-copy p, .nx-company-difference-intro > p { margin: 0; color: #536b88; font-size: 16px; line-height: 1.9; text-align: left; hyphens: none; }
.nx-company-story-copy p + p { margin-top: 24px; padding-top: 24px; border-top: 1px solid #e3eaf4; }
.nx-company-difference { position: relative; margin-top: 64px; padding: 42px; border: 1px solid #e1e9f4; border-radius: 28px; background: linear-gradient(140deg, #f7faff, #f0f5fc); }
.nx-company-difference-intro { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.5fr); align-items: start; gap: 48px; }
.nx-company-strengths { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 32px 0 0; padding: 0; list-style: none; }
.nx-company-strengths > li { position: relative; display: flex; align-items: flex-start; gap: 13px; min-width: 0; margin: 0; padding: 23px 20px; border: 1px solid #dfe8f5; border-radius: 16px; background: #ffffffd9; transition: transform 250ms ease, border-color 250ms ease, box-shadow 250ms ease; }
.nx-company-check { display: grid; place-items: center; flex: 0 0 26px; width: 26px; height: 26px; margin-top: 1px; border: 1px solid #c9d8f0; border-radius: 50%; background: #eef4ff; color: #426ba8; font-size: 10px; }
.nx-company-strengths p { margin: 0; color: #304e75; font-size: 14px; font-weight: 500; line-height: 1.8; }
/* Motion is added only after observers are active; without JS everything is visible. */
.nx-company-motion [data-company-reveal] { opacity: 0; transform: translateY(42px); transition: opacity 850ms ease var(--company-delay, 0ms), transform 1000ms cubic-bezier(.16,1,.3,1) var(--company-delay, 0ms); }
.nx-company-motion [data-company-reveal].is-visible { opacity: 1; transform: none; }
.nx-company-motion .nx-company-photo { transform: scale(var(--company-image-scale, .88)); clip-path: inset(0 7% 0 7% round 26px); transition: clip-path 1300ms cubic-bezier(.16,1,.3,1); }
.nx-company-motion .nx-company-photo.is-photo-visible { clip-path: inset(0 0 0 0 round 26px); }
.nx-company-photo-path { position: absolute; z-index: 2; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.nx-company-photo-path path { stroke: #e5f0ff45; stroke-width: 1; vector-effect: non-scaling-stroke; }
.nx-company-photo-path .nx-company-photo-flow { stroke: #eef5ff; stroke-width: 2.5; stroke-dasharray: 95 2380; filter: drop-shadow(0 0 5px #a3c8ff); }
.nx-company-motion .nx-company-photo-flow { animation: nx-company-trace 9s linear infinite; }
.nx-company-motion .nx-company-photo img { animation: nx-company-breathe 12s ease-in-out infinite alternate; }
.nx-company-motion .nx-company-photo::before { content: ""; position: absolute; inset: -50%; z-index: 2; background: linear-gradient(105deg, transparent 40%, #e6f2ff20 49%, transparent 58%); pointer-events: none; animation: nx-company-light 8s ease-in-out infinite; }
.nx-company-motion .nx-company-glance::after { content: ""; position: absolute; top: 0; left: 18%; width: 45%; height: 2px; background: linear-gradient(90deg, transparent, #c5daff, transparent); animation: nx-company-panel-light 6s ease-in-out infinite alternate; }
.nx-company-motion .nx-company-fact.is-visible .nx-company-fact-icon { animation: nx-company-icon 3500ms ease-in-out infinite; animation-delay: var(--company-delay, 0ms); }
.nx-company-motion .nx-company-section-heading .nx-company-rule { transform: scaleX(.3); transform-origin: left; transition: transform 1200ms cubic-bezier(.16,1,.3,1); }
.nx-company-motion .nx-company-section-heading.is-visible .nx-company-rule { transform: scaleX(1.7); }
.nx-company-motion .nx-company-strengths > li { transform: translateY(48px) perspective(700px) rotateX(8deg); }
.nx-company-motion .nx-company-strengths > li.is-visible { transform: none; }
.nx-company-motion .nx-company-strengths > li .nx-company-check { transform: scale(.4) rotate(-35deg); transition: transform 900ms cubic-bezier(.34,1.56,.64,1) calc(var(--company-delay, 0ms) + 200ms); }
.nx-company-motion .nx-company-strengths > li.is-visible .nx-company-check { transform: none; }
.nx-company-strengths > li::before { content: ""; position: absolute; inset: 0; border-radius: inherit; background: radial-gradient(200px circle at var(--company-mx, 50%) var(--company-my, 50%), #a8c9ff38, transparent 75%); opacity: 0; transition: opacity 300ms ease; pointer-events: none; }
.nx-company-strengths > li > * { position: relative; }
.nx-company.is-outside *, .nx-company.is-outside *::before, .nx-company.is-outside *::after { animation-play-state: paused !important; }
@keyframes nx-company-breathe { from { transform: scale(1.055) translateY(var(--company-image-y, 0px)); } to { transform: scale(1.15) translateY(var(--company-image-y, 0px)); } }
@keyframes nx-company-trace { to { stroke-dashoffset: -2475; } }
@keyframes nx-company-light { 0%, 15% { transform: translateX(-55%); } 65%, 100% { transform: translateX(55%); } }
@keyframes nx-company-panel-light { to { transform: translateX(80%); opacity: .4; } }
@keyframes nx-company-icon { 0%, 100% { box-shadow: 0 0 0 0 #a4c4ff00; transform: translateY(0); } 50% { box-shadow: 0 0 0 6px #a4c4ff0d; transform: translateY(-3px); } }
.nx-company-motion .nx-company-glance-orbit::after { animation: nx-company-orbit 50s linear infinite; }
.nx-company.is-outside .nx-company-glance-orbit::after { animation-play-state: paused; }
@keyframes nx-company-orbit { to { transform: rotate(360deg); } }
@media (hover: hover) and (pointer: fine) {
  .nx-company-strengths > li.is-visible:hover { transform: translateY(-4px); border-color: #abc2e5; box-shadow: 0 10px 24px #16396b09; }
  .nx-company-strengths > li:hover::before { opacity: 1; }
  .nx-company-fact:hover .nx-company-fact-icon { transform: translateY(-2px); background: #8cafff24; }
}
@media (max-width: 1199px) {
  .nx-company-overview { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 22px; }
  .nx-company-glance { padding-inline: 23px; }
  .nx-company-story { gap: 40px; }
  .nx-company-difference { padding: 32px; }
  .nx-company-strengths { gap: 12px; }
  .nx-company-strengths > li { padding: 20px 16px; gap: 10px; }
}
@media (max-width: 991px) {
  .nx-company { padding-block: 72px 80px; }
  .nx-company-overview { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 20px; }
  .nx-company-photo { min-height: 470px; }
  .nx-company-glance { padding: 26px 20px 18px; }
  .nx-company-glance-heading { gap: 10px; }
  .nx-company .nx-company-glance-heading h2 { font-size: 10px; letter-spacing: .09em; }
  .nx-company-fact { padding-left: 0; padding-top: 17px; min-height: 88px; }
  .nx-company-fact-icon { display: none; }
  .nx-company-story { grid-template-columns: minmax(0, .65fr) minmax(0, 1.5fr); gap: 30px; margin-top: 46px; }
  .nx-company-difference { margin-top: 46px; padding: 30px; }
  .nx-company-difference-intro { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .nx-company .nx-company-difference-intro h2 { max-width: none; }
  .nx-company-strengths { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .nx-company { padding: 56px 0 64px; }
  .nx-company .nx-company-container { padding-inline: 24px; }
  .nx-company-overview { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .nx-company-photo { min-height: 0; height: auto; aspect-ratio: 4 / 3; border-radius: 22px 22px 60px 22px; }
  .nx-company-photo-line { border-radius: 13px 13px 46px 13px; }
  .nx-company-photo-corner { width: 58px; height: 58px; right: -5px; font-size: 18px; }
  .nx-company-glance { margin-bottom: 0; padding: 24px; border-radius: 22px; }
  .nx-company .nx-company-glance-heading h2 { font-size: 11px; letter-spacing: .12em; }
  .nx-company-glance-heading { padding-bottom: 20px; }
  .nx-company-glance dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 22px; }
  .nx-company-fact { min-width: 0; min-height: 95px; padding: 19px 0 17px; }
  .nx-company-fact dd { font-size: 14px; }
  .nx-company-fact:nth-last-child(-n+2) { border: 0; padding-bottom: 0; }
  .nx-company-story { grid-template-columns: minmax(0, 1fr); gap: 24px; margin-top: 40px; }
  .nx-company-rule { margin-bottom: 17px; }
  .nx-company .nx-company-section-heading h2 { max-width: none; font-size: 34px; }
  .nx-company-story-copy p, .nx-company-difference-intro > p { font-size: 15px; line-height: 1.9; }
  .nx-company-difference { margin-top: 40px; padding: 26px 20px; border-radius: 22px; }
  .nx-company-difference-intro { gap: 23px; }
  .nx-company-strengths { grid-template-columns: minmax(0, 1fr); margin-top: 25px; gap: 11px; }
  .nx-company-strengths > li { padding: 20px 16px; gap: 13px; }
}
@media (max-width: 359px) {
  .nx-company .nx-company-container { padding-inline: 20px; }
  .nx-company-glance { padding: 22px 20px; }
  .nx-company-glance dl { grid-template-columns: minmax(0, 1fr); }
  .nx-company-fact:nth-last-child(2) { border-bottom: 1px solid #a8c7f11c; padding-bottom: 17px; }
}
@media (prefers-reduced-motion: reduce) {
  .nx-company *, .nx-company *::before, .nx-company *::after { animation: none !important; transition: none !important; }
  .nx-company-motion [data-company-reveal], .nx-company-motion .nx-company-strengths > li { opacity: 1; transform: none; }
  .nx-company-motion .nx-company-photo, .nx-company-photo img { transform: none; clip-path: none; }
  .nx-company-motion .nx-company-check { transform: none !important; }
}
