/* Nafa Technologies — Bootstrap 5 overrides */
@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&display=swap');

:root {
  --bs-primary: #087ff5;
  --bs-primary-rgb: 8, 127, 245;
  --nafa-dark: #020b18;
  --nafa-navy: #06162d;
  --nafa-blue: #075be8;
  --nafa-royal: #08328f;
  --nafa-cyan: #08c9f7;
  --nafa-surface: #0d1929;
  --nafa-surface-2: #101f32;
  --nafa-border: rgba(148, 184, 224, 0.14);
}

body {
  font-family: 'Outfit', sans-serif;
  background-color: var(--nafa-dark);
  color: #e8eef7;
  padding-top: 100px;
  line-height: 1.65;
  overflow-x: hidden;
}

/* Shared immersive motion system */
.hero-modern, .page-hero, .hero-section { overflow: hidden; isolation: isolate; }
.hero-modern > .container, .page-hero > .container, .hero-section > .container { position: relative; z-index: 2; }
.hero-ambient { position: absolute; z-index: 0; inset: 0; overflow: hidden; pointer-events: none; }
.ambient-ring { position: absolute; border: 1px solid rgba(8,201,247,.18); border-radius: 50%; filter: drop-shadow(0 0 12px rgba(8,127,245,.16)); }
.ring-a { width: 440px; height: 440px; right: -110px; top: -190px; animation: ambientOrbit 22s linear infinite; }
.ring-b { width: 260px; height: 260px; left: 7%; bottom: -165px; border-style: dashed; animation: ambientOrbit 15s linear infinite reverse; }
.ambient-scan { position: absolute; left: 0; right: 0; top: -15%; height: 100px; opacity: .35; background: linear-gradient(180deg, transparent, rgba(8,201,247,.1), transparent); animation: ambientScan 8s ease-in-out infinite; }
.ambient-particle { position: absolute; width: 4px; height: 4px; border-radius: 50%; background: #78dcff; box-shadow: 0 0 12px #08c9f7; animation: ambientParticle 7s ease-in-out infinite; }
.particle-1 { left: 8%; top: 26%; }.particle-2 { left: 18%; top: 68%; animation-delay: -1s; }.particle-3 { left: 31%; top: 18%; animation-delay: -2s; }.particle-4 { left: 43%; top: 77%; animation-delay: -3s; }.particle-5 { left: 57%; top: 29%; animation-delay: -4s; }.particle-6 { left: 69%; top: 73%; animation-delay: -5s; }.particle-7 { left: 82%; top: 22%; animation-delay: -6s; }.particle-8 { left: 91%; top: 61%; animation-delay: -2.5s; }.particle-9 { left: 49%; top: 10%; animation-delay: -4.5s; }.particle-10 { left: 76%; top: 47%; animation-delay: -1.5s; }
body[data-motion-theme="network"] .ambient-ring { border-radius: 28%; transform: rotate(35deg); }
body[data-motion-theme="flow"] .ring-a { width: 620px; height: 240px; top: 8%; right: -180px; }
body[data-motion-theme="signal"] .ambient-scan { opacity: .65; animation-duration: 4.5s; }
body[data-motion-theme="signal"] .ambient-particle { width: 6px; height: 2px; border-radius: 1px; }
body[data-motion-theme="quiet"] .ambient-particle, body[data-motion-theme="quiet"] .ambient-scan { display: none; }
body[data-motion-theme="quiet"] .ambient-ring { opacity: .35; animation-duration: 45s; }
.motion-reveal { opacity: 0; transform: translateY(30px) scale(.985); filter: blur(5px); transition: opacity .75s ease var(--reveal-delay, 0ms), transform .75s cubic-bezier(.2,.7,.2,1) var(--reveal-delay, 0ms), filter .75s ease var(--reveal-delay, 0ms); }
.motion-reveal.is-revealed { opacity: 1; transform: none; filter: none; }
.motion-surface { position: relative; overflow: hidden; }
.motion-surface::after { content: ''; position: absolute; inset: 0; z-index: 0; opacity: 0; pointer-events: none; background: radial-gradient(240px circle at var(--spot-x, 50%) var(--spot-y, 50%), rgba(8,201,247,.13), transparent 68%); transition: opacity .25s ease; }
.motion-surface:hover::after { opacity: 1; }
.motion-surface > * { position: relative; z-index: 1; }
@keyframes ambientOrbit { to { transform: rotate(360deg); } }
@keyframes ambientScan { 0%,15% { transform: translateY(-120%); } 65%,100% { transform: translateY(780%); } }
@keyframes ambientParticle { 0%,100% { opacity: .18; transform: translate(0,0) scale(.7); } 50% { opacity: .95; transform: translate(16px,-24px) scale(1.4); } }

/* Contextual animated signature used on content pages */
.page-signature { position: relative; z-index: 3; max-width: 1040px; margin: 3.25rem auto 0; padding: 1.1rem; display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: .75rem; overflow: hidden; border: 1px solid rgba(8,201,247,.18); border-radius: 22px; background: rgba(5,19,37,.72); box-shadow: 0 24px 65px rgba(0,0,0,.27), inset 0 0 45px rgba(8,127,245,.04); backdrop-filter: blur(14px); }
.signature-line { position: absolute; z-index: 0; left: 10%; right: 10%; top: 50%; height: 1px; background: linear-gradient(90deg, transparent, rgba(8,201,247,.8), rgba(7,91,232,.8), transparent); box-shadow: 0 0 10px rgba(8,201,247,.45); }
.signature-line::after { content: ''; position: absolute; top: -2px; width: 42px; height: 5px; border-radius: 999px; background: #b2f1ff; box-shadow: 0 0 18px #08c9f7; animation: signatureSignal 4.5s ease-in-out infinite; }
.signature-line i { position: absolute; top: -4px; width: 9px; height: 9px; border-radius: 50%; background: #08c9f7; box-shadow: 0 0 12px #08c9f7; animation: signaturePulse 2s ease-in-out infinite; }
.signature-line i:nth-child(1) { left: 25%; }.signature-line i:nth-child(2) { left: 50%; animation-delay: -.7s; }.signature-line i:nth-child(3) { left: 75%; animation-delay: -1.4s; }
.signature-node { position: relative; z-index: 1; min-height: 76px; display: flex; align-items: center; justify-content: center; gap: .65rem; padding: .7rem; color: #eaf5ff; border: 1px solid rgba(91,177,255,.2); border-radius: 15px; background: linear-gradient(145deg,rgba(13,37,66,.96),rgba(6,20,38,.96)); box-shadow: 0 12px 28px rgba(0,0,0,.22); animation: signatureFloat 4.5s ease-in-out infinite; }
.signature-node:nth-of-type(3) { animation-delay: -.8s; }.signature-node:nth-of-type(4) { animation-delay: -1.6s; }.signature-node:nth-of-type(5) { animation-delay: -2.4s; }
.signature-node b { color: var(--nafa-cyan); font-size: .7rem; letter-spacing: .08em; }
.signature-node span { font-weight: 600; font-size: .82rem; }
body[data-motion-theme="signal"] .signature-node { background: linear-gradient(145deg,rgba(15,31,61,.96),rgba(8,18,36,.96)); }
body[data-motion-theme="flow"] .page-signature { border-radius: 999px; }
body[data-motion-theme="flow"] .signature-node { border-radius: 999px; }
@keyframes signatureSignal { 0% { left: 0; opacity: 0; } 15%,85% { opacity: 1; } 100% { left: calc(100% - 42px); opacity: 0; } }
@keyframes signaturePulse { 50% { opacity: .25; transform: scale(.6); } }
@keyframes signatureFloat { 50% { transform: translateY(-5px); border-color: rgba(8,201,247,.42); } }

/* Africa digital infrastructure visual */
.africa-digital-map { position: relative; min-height: 390px; overflow: hidden; border: 1px solid rgba(8,201,247,.2); border-radius: 26px; background: radial-gradient(circle at 50% 47%,rgba(8,127,245,.22),transparent 32%),linear-gradient(145deg,#0b1e36,#06111f); box-shadow: 0 28px 75px rgba(0,0,0,.32),inset 0 0 60px rgba(8,201,247,.04); isolation: isolate; }
.africa-map-grid { position: absolute; inset: 0; opacity: .13; background-image: linear-gradient(rgba(8,201,247,.2) 1px,transparent 1px),linear-gradient(90deg,rgba(8,201,247,.2) 1px,transparent 1px); background-size: 36px 36px; mask-image: radial-gradient(circle,#000,transparent 78%); }
.africa-digital-map svg { position: absolute; inset: 3% 7% 8%; width: 86%; height: 89%; filter: drop-shadow(0 0 20px rgba(8,127,245,.18)); }
.africa-shape { fill: rgba(8,127,245,.08); stroke: url(#africaGlow); stroke-width: 2; stroke-dasharray: 8 7; animation: africaOutline 16s linear infinite; }
.africa-route { fill: none; stroke: rgba(90,207,255,.68); stroke-width: 1.5; stroke-dasharray: 5 9; animation: africaRoute 2.2s linear infinite; }
.route-two { animation-direction: reverse; animation-duration: 2.8s; }.route-three { animation-duration: 3.2s; }
.map-node { fill: #9beaff; stroke: rgba(8,201,247,.28); stroke-width: 8; paint-order: stroke; filter: drop-shadow(0 0 7px #08c9f7); animation: mapNodePulse 2s ease-in-out infinite; }
.n2 { animation-delay: -.4s; }.n3 { animation-delay: -.8s; }.n4 { animation-delay: -1.2s; }.n5 { animation-delay: -1.6s; fill: #fff; }
.africa-map-core { position: absolute; z-index: 4; left: 48.5%; top: 48%; translate: -50% -50%; width: 70px; height: 70px; display: grid; place-content: center; color: #fff; border: 1px solid rgba(255,255,255,.3); border-radius: 21px; background: linear-gradient(145deg,#075be8,#08c9f7); box-shadow: 0 0 0 9px rgba(8,127,245,.08),0 0 40px rgba(8,201,247,.4); animation: mapCorePulse 3s ease-in-out infinite; }
.africa-map-core strong { font-size: 1.8rem; line-height: 1; }.africa-map-core small { margin-top: .25rem; font-size: .5rem; letter-spacing: .12em; }
.map-capability { position: absolute; z-index: 5; display: flex; align-items: center; gap: .45rem; padding: .5rem .65rem; color: #dcecff; border: 1px solid rgba(91,177,255,.22); border-radius: 12px; background: rgba(5,20,39,.9); box-shadow: 0 12px 28px rgba(0,0,0,.25); font-size: .68rem; animation: mapCapabilityFloat 4s ease-in-out infinite; }
.map-capability b { color: var(--nafa-cyan); font-size: .55rem; }.cap-enterprise { left: 5%; top: 12%; }.cap-institution { right: 5%; top: 16%; animation-delay: -1.3s; }.cap-people { right: 7%; bottom: 18%; animation-delay: -2.6s; }
.map-live { position: absolute; z-index: 5; left: 50%; bottom: 4%; translate: -50%; display: flex; align-items: center; gap: .45rem; width: max-content; padding: .42rem .75rem; color: #9db8d2; border: 1px solid rgba(8,201,247,.15); border-radius: 999px; background: rgba(2,11,24,.75); font-size: .65rem; }
.map-live i { width: 6px; height: 6px; border-radius: 50%; background: #45dfa4; box-shadow: 0 0 10px #45dfa4; animation: ecosystemLive 1.5s ease-in-out infinite; }
@keyframes africaOutline { to { stroke-dashoffset: -120; } } @keyframes africaRoute { to { stroke-dashoffset: -28; } } @keyframes mapNodePulse { 50% { opacity: .35; transform: scale(.75); transform-box: fill-box; transform-origin: center; } } @keyframes mapCorePulse { 50% { transform: scale(1.06); } } @keyframes mapCapabilityFloat { 50% { transform: translateY(-6px); } }

h1, h2, h3, h4, h5, h6 { letter-spacing: -0.025em; }

.section-space { padding: 6rem 0; }
.section-soft { background: linear-gradient(180deg, rgba(10,22,40,.45), rgba(10,22,40,.85)); }
.section-heading { max-width: 820px; margin-bottom: 3rem; }
.section-heading.center { margin-inline: auto; text-align: center; }
.section-heading h2 { font-size: clamp(2rem, 4vw, 3rem); font-weight: 750; margin-bottom: 1rem; }
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  color: var(--nafa-cyan);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  margin-bottom: 1rem;
}
.eyebrow::before { content: ''; width: 24px; height: 1px; background: currentColor; }

/* Animated technology ecosystem */
.tech-showcase { position: relative; overflow: hidden; background: linear-gradient(180deg, #020b18, #061426 55%, #020b18); }
.tech-showcase::before { content: ''; position: absolute; width: 520px; height: 520px; right: 8%; top: 50%; translate: 0 -50%; border-radius: 50%; background: rgba(8,127,245,.11); filter: blur(90px); pointer-events: none; }

/* Animated product universe in the home hero */
.product-universe { position: relative; min-height: 480px; overflow: hidden; border: 1px solid rgba(98,184,255,.22); border-radius: 28px; background: radial-gradient(circle at 50% 48%, rgba(8,127,245,.23), transparent 24%), linear-gradient(145deg, rgba(16,36,67,.96), rgba(5,17,33,.98)); box-shadow: 0 35px 90px rgba(0,0,0,.38), inset 0 0 80px rgba(8,127,245,.05); isolation: isolate; }
.universe-grid { position: absolute; inset: 0; opacity: .15; background-image: linear-gradient(rgba(91,190,255,.18) 1px, transparent 1px), linear-gradient(90deg, rgba(91,190,255,.18) 1px, transparent 1px); background-size: 44px 44px; mask-image: radial-gradient(circle, #000, transparent 72%); }
.universe-orbit { position: absolute; left: 50%; top: 48%; translate: -50% -50%; border: 1px solid rgba(8,201,247,.25); border-radius: 50%; }
.orbit-one { width: 62%; height: 46%; transform: rotate(-13deg); animation: universeOrbit 16s linear infinite; }
.orbit-two { width: 42%; height: 66%; transform: rotate(28deg); animation: universeOrbit 12s linear infinite reverse; }
.universe-core { position: absolute; z-index: 4; left: 50%; top: 48%; width: 112px; height: 112px; translate: -50% -50%; display: grid; place-content: center; text-align: center; color: #fff; border: 1px solid rgba(255,255,255,.3); border-radius: 32px; background: linear-gradient(145deg, #075be8, #08c9f7); box-shadow: 0 0 0 12px rgba(8,127,245,.08), 0 0 60px rgba(8,201,247,.4); animation: universeCore 3s ease-in-out infinite; }
.universe-core span { font-size: 2.8rem; font-weight: 800; line-height: .9; }
.universe-core small { margin-top: .55rem; font-size: .65rem; font-weight: 600; }
.universe-product { position: absolute; z-index: 5; display: flex; align-items: center; gap: .7rem; min-width: 168px; padding: .7rem .8rem; color: #fff; border: 1px solid rgba(129,202,255,.25); border-radius: 16px; background: rgba(7,22,42,.92); box-shadow: 0 16px 36px rgba(0,0,0,.28); backdrop-filter: blur(10px); animation: universeFloat 4s ease-in-out infinite; }
.universe-product b { width: 42px; height: 42px; flex: 0 0 42px; display: grid; place-items: center; border-radius: 12px; background: #168cf1; }
.universe-product span, .universe-product small { display: block; }
.universe-product strong { font-size: .82rem; }
.universe-product small { color: #91b7db; font-size: .65rem; }
.universe-ticket { left: 6%; top: 10%; }
.universe-place { right: 6%; top: 12%; animation-delay: -1s; }
.universe-place b { background: #8746e8; }
.universe-arena { left: 7%; bottom: 15%; animation-delay: -2s; }
.universe-arena b { background: linear-gradient(135deg,#ff9819,#ed4343); }
.universe-logistik { right: 7%; bottom: 13%; animation-delay: -3s; }
.universe-logistik b { background: #35a879; }
.universe-beam { position: absolute; z-index: 2; left: 50%; top: 48%; width: 31%; height: 1px; transform-origin: left center; background: linear-gradient(90deg, rgba(8,201,247,.8), transparent); filter: drop-shadow(0 0 5px #08c9f7); animation: universeBeam 2s ease-in-out infinite; }
.beam-ticket { transform: rotate(211deg); }.beam-place { transform: rotate(329deg); animation-delay: -.5s; }.beam-arena { transform: rotate(149deg); animation-delay: -1s; }.beam-logistik { transform: rotate(31deg); animation-delay: -1.5s; }
.universe-status { position: absolute; z-index: 5; left: 50%; bottom: 4%; translate: -50% 0; display: flex; align-items: center; justify-content: center; gap: .45rem; width: max-content; padding: .45rem .8rem; color: #93abc5; border: 1px solid rgba(148,184,224,.15); border-radius: 999px; background: rgba(2,11,24,.75); font-size: .65rem; }
.universe-status i { width: 6px; height: 6px; border-radius: 50%; background: #48d69e; box-shadow: 0 0 9px #48d69e; }.universe-status i:nth-of-type(2) { margin-left: .4rem; background: #a374ff; box-shadow: 0 0 9px #a374ff; }
@keyframes universeOrbit { to { rotate: 360deg; } }
@keyframes universeCore { 50% { transform: scale(1.05); box-shadow: 0 0 0 20px rgba(8,127,245,0), 0 0 78px rgba(8,201,247,.5); } }
@keyframes universeFloat { 50% { transform: translateY(-8px); } }
@keyframes universeBeam { 0%,100% { opacity: .28; } 50% { opacity: 1; } }
.tech-network { position: relative; width: 100%; min-height: 440px; overflow: hidden; border: 1px solid rgba(8,201,247,.2); border-radius: 28px; background: radial-gradient(circle at 50% 50%, rgba(8,127,245,.2), transparent 28%), linear-gradient(145deg, rgba(9,27,51,.96), rgba(3,13,27,.98)); box-shadow: 0 30px 80px rgba(0,0,0,.34), inset 0 0 70px rgba(8,127,245,.04); isolation: isolate; }
.tech-network::before, .tech-network::after { content: ''; position: absolute; inset: 17% 27%; border: 1px solid rgba(8,201,247,.13); border-radius: 50%; animation: techOrbit 13s linear infinite; }
.tech-network::after { inset: 25% 34%; animation-direction: reverse; animation-duration: 9s; }
.tech-network-lines { position: absolute; inset: 0; width: 100%; height: 100%; }
.tech-network-lines path { fill: none; stroke: rgba(49,194,255,.42); stroke-width: 2; stroke-linecap: round; stroke-dasharray: 6 14; animation: techFlow 2.4s linear infinite; filter: drop-shadow(0 0 5px rgba(8,201,247,.65)); }
.tech-network-lines path:nth-child(even) { animation-direction: reverse; animation-duration: 3.1s; }
.tech-network-core, .tech-network-node { position: absolute; z-index: 2; display: grid; place-content: center; text-align: center; color: #fff; border: 1px solid rgba(111,211,255,.32); box-shadow: 0 14px 35px rgba(0,0,0,.32), 0 0 26px rgba(8,127,245,.14); }
.tech-network-core { left: 50%; top: 50%; width: 108px; height: 108px; translate: -50% -50%; border-radius: 30px; background: linear-gradient(145deg, #075be8, #08c9f7); animation: techCorePulse 2.8s ease-in-out infinite; }
.tech-network-core strong { font-size: 2.6rem; line-height: 1; }
.tech-network-core small { margin-top: .4rem; font-weight: 600; }
.tech-network-node { width: 126px; min-height: 68px; padding: .7rem; border-radius: 16px; background: rgba(10,27,48,.94); animation: techFloat 4s ease-in-out infinite; }
.tech-network-node strong { font-size: .9rem; }
.tech-network-node small { color: #83bce6; font-size: .68rem; }
.node-js { left: 7%; top: 10%; }
.node-java { right: 7%; top: 10%; animation-delay: -.7s; }
.node-php { left: 3%; top: 42%; animation-delay: -1.4s; }
.node-csharp { right: 3%; top: 42%; animation-delay: -2.1s; }
.node-api { left: 50%; bottom: 3%; translate: -50% 0; animation-delay: -2.4s; }
.node-data { left: 8%; bottom: 9%; animation-delay: -2.8s; }
.node-cloud { right: 8%; bottom: 9%; animation-delay: -3.5s; }
.tech-network-compact { max-width: 980px; min-height: 390px; margin-inline: auto; }
.tech-spectrum { position: relative; max-width: 1120px; margin-inline: auto; overflow: hidden; padding: .65rem 0; border-block: 1px solid rgba(8,201,247,.15); background: linear-gradient(90deg, transparent, rgba(8,127,245,.07) 15%, rgba(8,201,247,.08) 50%, rgba(8,127,245,.07) 85%, transparent); mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent); }
.tech-spectrum-row { overflow: hidden; padding: .35rem 0; }
.tech-spectrum-track { display: flex; width: max-content; gap: .7rem; animation: techSpectrum 32s linear infinite; }
.tech-spectrum-row.reverse .tech-spectrum-track { animation-direction: reverse; animation-duration: 37s; }
.tech-spectrum span { position: relative; display: inline-flex; align-items: center; gap: .45rem; white-space: nowrap; padding: .48rem .82rem; color: #dcecff; border: 1px solid rgba(54,161,255,.28); border-radius: 999px; background: rgba(7,27,52,.88); box-shadow: inset 0 0 14px rgba(8,127,245,.06); font-size: .73rem; font-weight: 600; }
.tech-spectrum span::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--nafa-cyan); box-shadow: 0 0 9px var(--nafa-cyan); }
.tech-spectrum-row.reverse span::before { background: #8b67ff; box-shadow: 0 0 9px #8b67ff; }
.tech-spectrum:hover .tech-spectrum-track { animation-play-state: paused; }
.tech-spectrum-home { max-width: 100%; }
.tech-flow-summary { display: flex; align-items: center; justify-content: center; gap: .75rem; color: #dcecff; }
.tech-flow-summary span { display: inline-flex; align-items: center; gap: .45rem; white-space: nowrap; font-size: .75rem; font-weight: 600; }
.tech-flow-summary b { display: grid; place-items: center; width: 27px; height: 27px; color: var(--nafa-cyan); border: 1px solid rgba(8,201,247,.28); border-radius: 8px; background: rgba(8,201,247,.07); font-size: .58rem; }
.tech-flow-summary i { position: relative; width: clamp(18px,4vw,60px); height: 1px; overflow: visible; background: rgba(8,201,247,.28); }
.tech-flow-summary i::after { content: ''; position: absolute; top: -2px; width: 5px; height: 5px; border-radius: 50%; background: #9beaff; box-shadow: 0 0 9px #08c9f7; animation: flowSummary 2.4s linear infinite; }
.tech-flow-summary i:nth-of-type(2)::after { animation-delay: -.8s; }.tech-flow-summary i:nth-of-type(3)::after { animation-delay: -1.6s; }
@keyframes flowSummary { from { left: 0; } to { left: calc(100% - 5px); } }
@keyframes techSpectrum { to { transform: translateX(-50%); } }
@keyframes techFlow { to { stroke-dashoffset: -40; } }
@keyframes techFloat { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-7px); } }
@keyframes techCorePulse { 0%,100% { box-shadow: 0 0 0 0 rgba(8,201,247,.18), 0 0 45px rgba(8,127,245,.35); } 50% { box-shadow: 0 0 0 16px rgba(8,201,247,0), 0 0 70px rgba(8,201,247,.42); } }
@keyframes techOrbit { to { transform: rotate(360deg); } }

.hero-modern {
  position: relative;
  padding: 5.25rem 0 4.75rem;
  isolation: isolate;
  background:
    radial-gradient(circle at 78% 28%, rgba(0,200,255,.13), transparent 25%),
    radial-gradient(circle at 15% 30%, rgba(0,102,255,.15), transparent 30%);
}
.hero-modern::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  opacity: .17;
  background-image: linear-gradient(rgba(255,255,255,.07) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.07) 1px, transparent 1px);
  background-size: 56px 56px;
  mask-image: linear-gradient(to bottom, #000, transparent 85%);
}
.hero-modern h1 { font-size: clamp(2.7rem, 5vw, 4.6rem); line-height: 1.04; font-weight: 800; max-width: 900px; }
.hero-modern .hero-copy { max-width: 660px; color: #9bb0c9; font-size: 1.15rem; }

.glass-panel { background: rgba(13,25,41,.78); border: 1px solid var(--nafa-border); border-radius: 24px; box-shadow: 0 25px 70px rgba(0,0,0,.28); }
.service-card-modern { --service-accent: #08c9f7; position: relative; isolation: isolate; overflow: hidden; height: 100%; padding: 2rem; background: linear-gradient(145deg, rgba(16,31,50,.95), rgba(9,20,34,.95)); border: 1px solid var(--nafa-border); border-radius: 20px; transition: .35s ease; }
.service-card-modern::before { content: ''; position: absolute; z-index: 0; inset: 0 0 auto; height: 3px; background: linear-gradient(90deg,transparent,var(--service-accent),transparent); box-shadow: 0 0 18px var(--service-accent); opacity: .65; }
#expertises .row > div:nth-child(2) .service-card-modern { --service-accent: #6d8cff; } #expertises .row > div:nth-child(3) .service-card-modern { --service-accent: #8b67ff; } #expertises .row > div:nth-child(4) .service-card-modern { --service-accent: #35d6a0; } #expertises .row > div:nth-child(5) .service-card-modern { --service-accent: #ff9b42; } #expertises .row > div:nth-child(6) .service-card-modern { --service-accent: #e66cff; }
.service-card-modern:hover { transform: translateY(-9px); border-color: color-mix(in srgb,var(--service-accent) 42%,transparent); box-shadow: 0 26px 58px rgba(0,0,0,.3),inset 0 0 40px color-mix(in srgb,var(--service-accent) 5%,transparent); }
.service-icon { position: relative; width: 54px; height: 54px; display: grid; place-items: center; color: var(--service-accent); font-size: 1.45rem; background: color-mix(in srgb,var(--service-accent) 9%,transparent); border: 1px solid color-mix(in srgb,var(--service-accent) 25%,transparent); border-radius: 15px; margin-bottom: 1rem; box-shadow: inset 0 0 18px color-mix(in srgb,var(--service-accent) 6%,transparent); }
.service-icon::after { content: attr(data-step); position: absolute; left: 66px; color: color-mix(in srgb,var(--service-accent) 32%,transparent); font-size: 3.4rem; line-height: 1; font-weight: 800; letter-spacing: -.08em; }
.service-domain { display: inline-block; margin-bottom: .5rem; color: var(--service-accent); font-size: .65rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.service-card-modern p { color: #8fa6c0; }
.mini-list { list-style: none; padding: 0; margin: 1.25rem 0 0; }
.mini-list { display: grid; gap: .45rem; }
.mini-list li { color: #bdd0e5; padding: .52rem .65rem; border: 1px solid rgba(148,184,224,.1); border-radius: 10px; background: rgba(2,11,24,.36); font-size: .82rem; transition: .2s ease; }
.mini-list li::before { content: '✓'; color: var(--service-accent); margin-right: .65rem; }
.mini-list li:hover { color: #fff; border-color: color-mix(in srgb,var(--service-accent) 32%,transparent); transform: translateX(3px); }

.process-step { position: relative; height: 100%; padding: 2rem; overflow: hidden; border: 1px solid rgba(148,184,224,.1); border-radius: 18px; background: rgba(8,24,43,.58); transition: .3s ease; }
.process-step::before { content: ''; position: absolute; left: 0; top: 0; width: 3px; height: 100%; background: linear-gradient(180deg,var(--nafa-cyan),transparent); box-shadow: 0 0 14px rgba(8,201,247,.45); }
.process-step:hover { transform: translateY(-6px); border-color: rgba(8,201,247,.28); box-shadow: 0 20px 45px rgba(0,0,0,.24); }
.step-number { font-size: 3.5rem; font-weight: 800; color: rgba(0,200,255,.12); line-height: 1; margin-bottom: .5rem; }
.service-method { position: relative; isolation: isolate; }
.service-method::before { content: ''; position: absolute; z-index: -1; left: 8%; right: 8%; top: 50%; height: 1px; background: linear-gradient(90deg,transparent,rgba(8,201,247,.55),rgba(109,140,255,.55),rgba(139,103,255,.55),transparent); box-shadow: 0 0 12px rgba(8,201,247,.25); }
.service-method::after { content: ''; position: absolute; z-index: 2; left: 8%; top: calc(50% - 3px); width: 7px; height: 7px; border-radius: 50%; background: #d6f8ff; box-shadow: 0 0 15px #08c9f7; animation: serviceMethodSignal 5s ease-in-out infinite; }
.service-method > div { position: relative; z-index: 1; }
.service-method > div:nth-child(2) .process-step::before { background: linear-gradient(180deg,#6d8cff,transparent); }.service-method > div:nth-child(3) .process-step::before { background: linear-gradient(180deg,#8b67ff,transparent); }.service-method > div:nth-child(4) .process-step::before { background: linear-gradient(180deg,#35d6a0,transparent); }
.service-method > div:nth-child(2) .step-number { color: rgba(109,140,255,.2); }.service-method > div:nth-child(3) .step-number { color: rgba(139,103,255,.2); }.service-method > div:nth-child(4) .step-number { color: rgba(53,214,160,.2); }
@keyframes serviceMethodSignal { 0% { left: 8%; opacity: 0; } 12%,88% { opacity: 1; } 100% { left: calc(92% - 7px); opacity: 0; } }
.metric-strip { display: grid; grid-template-columns: repeat(4, 1fr); overflow: hidden; }
.metric-item { padding: 2rem; text-align: center; border-right: 1px solid var(--nafa-border); }
.metric-item:last-child { border: 0; }
.metric-item strong { display: block; color: #fff; font-size: 1.4rem; }
.metric-item span { color: #8299b5; font-size: .85rem; }

.cta-modern { position: relative; overflow: hidden; padding: 4rem; border-radius: 28px; background: linear-gradient(120deg, #0b2d61, #07344b); border: 1px solid rgba(0,200,255,.24); }
.cta-modern::after { content: ''; position: absolute; width: 300px; height: 300px; border-radius: 50%; right: -90px; top: -150px; background: rgba(0,200,255,.14); filter: blur(4px); }
.cta-modern > * { position: relative; z-index: 1; }
.feature-panel { padding: 2rem; height: 100%; border-radius: 20px; border: 1px solid var(--nafa-border); background: rgba(13,25,41,.72); }
.feature-panel .bi { color: var(--nafa-cyan); font-size: 1.6rem; }
.feature-panel p { color: #8fa6c0; margin-bottom: 0; }
.split-visual { min-height: 380px; padding: 2rem; display: flex; flex-direction: column; justify-content: space-between; background: radial-gradient(circle at 70% 20%, rgba(0,200,255,.18), transparent 30%), linear-gradient(145deg, #102441, #091522); }
.visual-chip { display: flex; align-items: center; gap: .75rem; max-width: 310px; padding: 1rem; background: rgba(5,13,24,.7); border: 1px solid var(--nafa-border); border-radius: 14px; }
.visual-chip:nth-child(2) { align-self: flex-end; }
.visual-chip i { color: var(--nafa-cyan); font-size: 1.3rem; }
.hero-side-visual { min-height: 390px; padding: 2rem; position: relative; overflow: hidden; }
.hero-side-visual::before, .hero-side-visual::after { content: ''; position: absolute; border-radius: 50%; border: 1px solid rgba(8,201,247,.2); }
.hero-side-visual::before { width: 330px; height: 190px; right: -70px; top: 30px; transform: rotate(-22deg); }
.hero-side-visual::after { width: 260px; height: 260px; left: -100px; bottom: -120px; }
.career-tile { position: relative; z-index: 1; width: 78%; padding: 1.15rem; border-radius: 15px; background: rgba(2,11,24,.8); border: 1px solid var(--nafa-border); }
.career-tile + .career-tile { margin-top: 1rem; margin-left: auto; }
.career-tile:nth-child(3) { margin-left: 8%; }
.career-tile i { color: var(--nafa-cyan); margin-right: .65rem; }
.career-tile small { color: #8fa6c0; display: block; margin: .3rem 0 0 1.7rem; }

.solution-jump { position: relative; z-index: 2; margin-top: -1.8rem; }
.solution-jump .glass-panel { padding: .8rem; display: flex; flex-wrap: wrap; justify-content: center; gap: .55rem; }
.solution-jump a { display: inline-flex; align-items: center; gap: .6rem; color: #c8d9ec; text-decoration: none; padding: .65rem 1rem; border-radius: 10px; font-weight: 600; font-size: .9rem; transition: .2s; }
.solution-jump a span { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 8px; color: #fff; font-size: .68rem; background: var(--nafa-blue); }
.solution-jump a:nth-child(2) span { background: #8746e8; }
.solution-jump a:nth-child(3) span { background: linear-gradient(135deg,#ff9819,#ed4343); }
.solution-jump a:nth-child(4) span { background: #35a879; }
.solution-jump a:hover { color: #fff; background: rgba(8,201,247,.1); }
.ecosystem-visual { min-height: 410px; position: relative; overflow: hidden; isolation: isolate; background: radial-gradient(circle at 50% 48%, rgba(8,127,245,.25), transparent 27%), linear-gradient(145deg,#0b203b,#04101f); box-shadow: 0 28px 75px rgba(0,0,0,.38), inset 0 0 55px rgba(8,201,247,.04); }
.ecosystem-grid { position: absolute; inset: 0; opacity: .14; background-image: linear-gradient(rgba(8,201,247,.18) 1px, transparent 1px), linear-gradient(90deg,rgba(8,201,247,.18) 1px,transparent 1px); background-size: 38px 38px; mask-image: radial-gradient(circle,#000,transparent 78%); }
.ecosystem-visual::before, .ecosystem-visual::after { content: ''; position: absolute; inset: 17%; border: 1px solid rgba(8,201,247,.24); border-radius: 50%; transform: rotate(-18deg); animation: ecosystemOrbit 13s linear infinite; }
.ecosystem-visual::after { inset: 29%; transform: rotate(28deg); border-style: dashed; animation-direction: reverse; animation-duration: 9s; }
.ecosystem-energy { position: absolute; left: 50%; top: 48%; width: 190px; height: 190px; translate: -50% -50%; border-radius: 50%; background: radial-gradient(circle, rgba(8,201,247,.2), transparent 68%); animation: ecosystemEnergy 2.6s ease-in-out infinite; }
.ecosystem-core { position: absolute; z-index: 4; inset: 48% auto auto 50%; transform: translate(-50%,-50%); width: 92px; height: 92px; display: grid; place-content: center; text-align: center; border: 1px solid rgba(255,255,255,.26); border-radius: 27px; color: white; background: linear-gradient(145deg,var(--nafa-blue),var(--nafa-cyan)); box-shadow: 0 0 0 10px rgba(8,127,245,.08), 0 0 55px rgba(8,201,247,.42); animation: ecosystemCore 3s ease-in-out infinite; }
.ecosystem-core strong { font-size: 2.25rem; line-height: 1; }.ecosystem-core small { margin-top: .35rem; font-size: .52rem; letter-spacing: .12em; }
.ecosystem-node { position: absolute; z-index: 5; width: 68px; height: 68px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.2); border-radius: 19px; color: #fff; font-weight: 700; font-size: .8rem; box-shadow: 0 15px 35px rgba(0,0,0,.3); animation: ecosystemFloat 4s ease-in-out infinite; }
.ecosystem-node span { position: absolute; top: 74px; width: max-content; color: #b4cae1; font-size: .67rem; font-weight: 500; }
.node-place { animation-delay: -1s; }.node-arena { animation-delay: -2s; }.node-logistik { animation-delay: -3s; }
.ecosystem-link { position: absolute; z-index: 2; left: 50%; top: 48%; width: 34%; height: 1px; transform-origin: left; background: linear-gradient(90deg,rgba(8,201,247,.9),transparent); filter: drop-shadow(0 0 5px #08c9f7); animation: ecosystemLink 2s ease-in-out infinite; }
.link-ticket { transform: rotate(212deg); }.link-place { transform: rotate(328deg); animation-delay: -.5s; }.link-arena { transform: rotate(148deg); animation-delay: -1s; }.link-logistik { transform: rotate(32deg); animation-delay: -1.5s; }
.ecosystem-live { position: absolute; z-index: 6; left: 50%; bottom: 4%; translate: -50%; display: flex; align-items: center; gap: .45rem; width: max-content; padding: .4rem .7rem; color: #8fafd0; border: 1px solid rgba(8,201,247,.14); border-radius: 999px; background: rgba(2,11,24,.72); font-size: .6rem; }
.ecosystem-live b { width: 6px; height: 6px; border-radius: 50%; background: #45dfa4; box-shadow: 0 0 10px #45dfa4; animation: ecosystemLive 1.5s ease-in-out infinite; }
@keyframes ecosystemOrbit { to { rotate: 360deg; } } @keyframes ecosystemEnergy { 50% { transform: scale(1.18); opacity: .65; } } @keyframes ecosystemCore { 50% { transform: translate(-50%,-50%) scale(1.05); } } @keyframes ecosystemFloat { 50% { transform: translateY(-7px); } } @keyframes ecosystemLink { 50% { opacity: .25; } } @keyframes ecosystemLive { 50% { opacity: .3; } }
.node-ticket { left: 13%; top: 15%; background: #168cf1; }
.node-place { right: 13%; top: 17%; background: #8746e8; }
.node-arena { left: 15%; bottom: 17%; background: linear-gradient(135deg,#ff9819,#ed4343); }
.node-logistik { right: 15%; bottom: 15%; background: #35a879; }
.product-status { display: inline-flex; align-items: center; white-space: nowrap; padding: .32rem .65rem; border-radius: 999px; font-size: .7rem; font-weight: 700; }
.product-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.status-ready { color: #66e6b5; background: rgba(53,168,121,.14); border: 1px solid rgba(53,168,121,.28); }
.status-pilot { color: #a9d8ff; background: rgba(22,140,241,.12); border: 1px solid rgba(22,140,241,.24); }
.status-build { color: #c9adff; background: rgba(135,70,232,.13); border: 1px solid rgba(135,70,232,.25); }
.status-soon { color: #ffc465; background: rgba(255,152,25,.12); border: 1px solid rgba(255,152,25,.25); }

@media (max-width: 991.98px) {
  .section-space { padding: 4.5rem 0; }
  .hero-modern { padding: 5rem 0 4rem; }
  .metric-strip { grid-template-columns: repeat(2, 1fr); }
  .metric-item:nth-child(2) { border-right: 0; }
  .metric-item:nth-child(-n+2) { border-bottom: 1px solid var(--nafa-border); }
}

@media (min-width: 992px) and (max-width: 1199.98px) {
  .navbar-nafa .navbar-brand img { width: 120px; height: 80px; }
  .navbar-nafa .nav-link { padding-inline: .62rem !important; font-size: .92rem; }
  .navbar-nafa .btn-nafa { padding-inline: 1rem !important; }
}

@media (max-width: 575.98px) {
  .hero-modern h1 { font-size: 2.55rem; }
  .cta-modern { padding: 2.25rem 1.4rem; }
}

/* Navbar */
.navbar-nafa {
  min-height: 100px;
  background: rgba(2, 11, 24, 0.94) !important;
  backdrop-filter: blur(18px);
  border-top: 2px solid transparent;
  border-image: linear-gradient(90deg, transparent 5%, var(--nafa-blue), var(--nafa-cyan), transparent 95%) 1;
  border-bottom: 1px solid rgba(8, 201, 247, 0.12);
  box-shadow: 0 12px 36px rgba(0,0,0,.18);
}

.navbar-nafa .container { max-width: 1320px; }
.navbar-nafa .navbar-brand { padding: 0; display: inline-flex; align-items: center; gap: .75rem; border-radius: 0; text-decoration: none; transition: transform .25s ease, filter .25s ease; }
.navbar-nafa .navbar-brand:hover { transform: translateY(-2px); filter: drop-shadow(0 0 9px rgba(8,201,247,.2)); }
.navbar-nafa .navbar-brand img {
  width: 128px;
  height: 84px;
  display: block;
  object-fit: contain;
  padding: 2px 6px;
  background: #fff;
  border: 1px solid rgba(8,201,247,.3);
  border-radius: 12px;
  image-rendering: auto;
}
.navbar-nafa .navbar-brand img.brand-logo-dark { width: 138px; height: 86px; padding: 0; background: transparent; border: 0; border-radius: 0; box-shadow: none; object-fit: contain; object-position: center; mix-blend-mode: screen; }
.footer-brand-lockup { display: flex; align-items: center; gap: .75rem; margin-bottom: .9rem; }
.footer-logo-dark { width: 124px; height: 82px; padding: 0; object-fit: contain; object-position: center; border: 1px solid rgba(36,159,255,.22); border-radius: 12px; background: #020b18; box-shadow: 0 0 24px rgba(8,127,245,.1); }

.navbar-nafa .nav-link {
  color: rgba(235,244,255,0.82) !important;
  font-weight: 500;
  padding: 0.5rem 1rem !important;
  border-radius: 8px;
  position: relative;
}

.navbar-nafa .nav-link:hover,
.navbar-nafa .nav-link.active {
  color: #fff !important;
  background: rgba(255,255,255,0.06);
}

.navbar-nafa .dropdown-menu {
  background: var(--nafa-navy);
  border: 1px solid rgba(255,255,255,0.1);
  min-width: 230px;
  padding: .6rem;
  border-radius: 14px;
  box-shadow: 0 22px 55px rgba(0,0,0,.38);
}

.navbar-nafa .dropdown-item {
  color: rgba(235,244,255,0.84);
  padding: .65rem .8rem;
  border-radius: 9px;
}
.navbar-nafa .company-menu { width: min(610px, calc(100vw - 2rem)); grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .25rem; }
.navbar-nafa .dropdown.show .company-menu,
.navbar-nafa .company-menu.show,
.navbar-nafa .nav-item.dropdown:hover > .company-menu,
.navbar-nafa .nav-item.dropdown:focus-within > .company-menu { display: grid; }
.company-menu-item { display: flex; align-items: center; gap: .8rem; }
.company-menu-item > i { width: 38px; height: 38px; flex: 0 0 38px; display: grid; place-items: center; color: var(--nafa-cyan); background: rgba(8,201,247,.08); border-radius: 10px; }
.company-menu-item span { min-width: 0; }
.company-menu-item strong { display: block; color: #eef6ff; font-size: .9rem; }
.company-menu-item small { display: block; color: #7f96b1; font-size: .7rem; margin-top: .18rem; white-space: normal; }
.company-menu-item.active > i { color: #fff; background: linear-gradient(135deg,var(--nafa-blue),var(--nafa-cyan)); }

.navbar-nafa .dropdown-item:hover {
  background: rgba(0,102,255,0.2);
  color: #fff;
}

.btn-nafa {
  background: linear-gradient(135deg, var(--nafa-blue), var(--nafa-cyan));
  border: none;
  color: #fff;
  font-weight: 600;
}

.btn-nafa:hover {
  background: linear-gradient(135deg, #0052cc, #00a8d9);
  color: #fff;
  box-shadow: 0 8px 25px rgba(0,102,255,0.35);
}

.btn-outline-nafa {
  border: 1.5px solid rgba(255,255,255,0.25);
  color: #fff;
}

.btn-outline-nafa:hover {
  background: rgba(255,255,255,0.08);
  border-color: var(--bs-primary);
  color: #fff;
}

/* Hero */
.hero-section {
  min-height: calc(100vh - 116px);
  background: radial-gradient(ellipse at 70% 20%, rgba(0,102,255,0.15), transparent 50%),
              radial-gradient(ellipse at 20% 80%, rgba(0,200,255,0.08), transparent 50%);
  position: relative;
  overflow: hidden;
}

@media (min-width: 1200px) {
  .navbar-nafa .nav-item.dropdown:hover > .dropdown-menu,
  .navbar-nafa .nav-item.dropdown:focus-within > .dropdown-menu { display: block; margin-top: 0; }
  .navbar-nafa .dropdown-menu { animation: navMenuIn .18s ease both; }
}

@keyframes navMenuIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

.company-subnav { position: relative; z-index: 3; margin-top: -1.6rem; }
.company-subnav-inner { display: flex; align-items: stretch; justify-content: center; gap: .35rem; padding: .65rem; overflow-x: auto; scrollbar-width: none; background: rgba(7,20,38,.96); border: 1px solid var(--nafa-border); border-radius: 18px; box-shadow: 0 18px 45px rgba(0,0,0,.22); }
.company-subnav-inner a { min-width: 130px; display: flex; align-items: center; justify-content: center; gap: .55rem; padding: .72rem .85rem; color: #9eb3cc; text-decoration: none; border-radius: 11px; font-size: .82rem; font-weight: 600; white-space: nowrap; transition: .2s ease; }
.company-subnav-inner a i { color: var(--nafa-cyan); }
.company-subnav-inner a:hover { color: #fff; background: rgba(8,201,247,.08); }
.company-subnav-inner a.active { color: #fff; background: linear-gradient(135deg,rgba(7,91,232,.3),rgba(8,201,247,.13)); box-shadow: inset 0 0 0 1px rgba(8,201,247,.18); }
.hero-section::before {
  content: '';
  position: absolute;
  width: min(48vw, 720px);
  aspect-ratio: 1;
  right: -18vw;
  top: -20%;
  border: 1px solid rgba(8,201,247,.15);
  border-radius: 50%;
  box-shadow: 0 0 0 50px rgba(7,91,232,.025), 0 0 0 100px rgba(8,201,247,.018);
  transform: rotate(-18deg);
  pointer-events: none;
}
.hero-section > .container { position: relative; z-index: 1; }

.hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.35rem 1rem;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 50px;
  font-size: 0.85rem;
  color: var(--nafa-cyan);
}

.hero-badge::before {
  content: '';
  width: 8px; height: 8px;
  background: var(--nafa-cyan);
  border-radius: 50%;
}

.text-gradient {
  background: linear-gradient(135deg, #fff, var(--nafa-cyan));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Cards */
.card-nafa {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 16px;
  transition: transform 0.3s, box-shadow 0.3s, border-color 0.3s;
  height: 100%;
}

.card-nafa:hover {
  transform: translateY(-6px);
  border-color: rgba(0,102,255,0.35);
  box-shadow: 0 16px 40px rgba(0,0,0,0.3);
}

.card-nafa .card-body { color: #e8eef7; }

.card-nafa .card-text { color: #8ba3c0; }

/* Premium panels shared by secondary pages */
.card-nafa, .feature-panel, .stat-box, .news-card, .faq-item { position: relative; isolation: isolate; transition: transform .3s ease,border-color .3s ease,box-shadow .3s ease; }
.card-nafa::before, .feature-panel::before, .stat-box::before, .faq-item::before { content: ''; position: absolute; z-index: 0; left: 12%; right: 12%; top: -1px; height: 2px; opacity: .55; background: linear-gradient(90deg,transparent,var(--nafa-cyan),transparent); box-shadow: 0 0 13px rgba(8,201,247,.5); }
.card-nafa > *, .feature-panel > *, .stat-box > *, .faq-item > * { position: relative; z-index: 1; }
.card-nafa:hover, .feature-panel:hover, .stat-box:hover, .news-card:hover { transform: translateY(-7px); border-color: rgba(8,201,247,.3); box-shadow: 0 24px 55px rgba(0,0,0,.28),inset 0 0 36px rgba(8,127,245,.035); }
.row > div:nth-child(3n+2) > .card-nafa::before, .row > div:nth-child(3n+2) > .feature-panel::before, .row > div:nth-child(3n+2) > .stat-box::before { background: linear-gradient(90deg,transparent,#8b67ff,transparent); box-shadow: 0 0 13px rgba(139,103,255,.45); }
.row > div:nth-child(3n) > .card-nafa::before, .row > div:nth-child(3n) > .feature-panel::before, .row > div:nth-child(3n) > .stat-box::before { background: linear-gradient(90deg,transparent,#35d6a0,transparent); box-shadow: 0 0 13px rgba(53,214,160,.42); }
.news-card { transition-duration: .35s; }
.news-card-img { position: relative; overflow: hidden; }
.news-card-img::after { content: ''; position: absolute; inset: -80% -30%; background: linear-gradient(105deg,transparent 42%,rgba(255,255,255,.15) 50%,transparent 58%); transform: translateX(-70%); transition: transform .75s ease; }
.news-card:hover .news-card-img::after { transform: translateX(70%); }
.news-card-img > * { position: relative; z-index: 1; transition: transform .35s ease; }
.news-card:hover .news-card-img > * { transform: scale(1.1) rotate(-3deg); }
.faq-item:hover { border-color: rgba(8,201,247,.25); background: rgba(8,127,245,.045); }

.icon-box {
  width: 56px; height: 56px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 0.85rem;
  color: #fff;
}

.icon-ticket { background: linear-gradient(135deg, #0066ff, #00c8ff); }
.icon-place { background: linear-gradient(135deg, #7c3aed, #a855f7); }
.icon-arena { background: linear-gradient(135deg, #f59e0b, #ef4444); }
.icon-logistik { background: linear-gradient(135deg, #10b981, #059669); }

/* Tags */
.tag-nafa {
  display: inline-block;
  padding: 0.5rem 1.1rem;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 50px;
  font-size: 0.875rem;
  margin: 0.25rem;
  transition: all 0.3s;
}

.tag-nafa:hover {
  border-color: var(--bs-primary);
  background: rgba(0,102,255,0.12);
  color: var(--nafa-cyan);
}

/* Stats */
.stat-box {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 16px;
  padding: 2rem 1rem;
  text-align: center;
}

.stat-box .stat-value {
  font-size: 2rem;
  font-weight: 800;
  background: linear-gradient(135deg, #fff, var(--nafa-cyan));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.stat-box .stat-label { color: #8ba3c0; font-size: 0.9rem; }

/* Page hero inner */
.page-hero {
  padding: 4rem 0 3rem;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,102,255,0.12), transparent 60%);
}

.page-hero h1 { font-weight: 800; }

/* CTA */
.cta-box {
  background: linear-gradient(135deg, rgba(0,102,255,0.12), rgba(0,200,255,0.06));
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 20px;
  padding: 3rem 2rem;
  text-align: center;
}

/* Mockup panel */
.mockup-panel {
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 20px;
  padding: 1.5rem;
}

.mockup-item {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 0.75rem;
  border-radius: 12px;
  transition: background 0.2s;
}

.mockup-item:hover { background: rgba(255,255,255,0.05); }

/* Footer */
.footer-nafa {
  background: linear-gradient(180deg, rgba(2,11,24,.96), rgba(1,7,16,1));
  border-top: 1px solid rgba(255,255,255,0.08);
  padding: 3rem 0 1.5rem;
  margin-top: 3rem;
}

.footer-nafa a {
  color: #8ba3c0;
  text-decoration: none;
  font-size: 0.875rem;
  display: block;
  padding: 0.2rem 0;
}

.footer-nafa a:hover { color: var(--nafa-cyan); }

.footer-nafa h6 {
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: 0.8rem;
  margin-bottom: 1rem;
}

/* Forms */
.form-nafa .form-control,
.form-nafa .form-select {
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.12);
  color: #e8eef7;
  padding: 0.75rem 1rem;
  border-radius: 12px;
}

.form-nafa .form-control:focus,
.form-nafa .form-select:focus {
  background: rgba(255,255,255,0.07);
  border-color: var(--bs-primary);
  color: #e8eef7;
  box-shadow: 0 0 0 0.2rem rgba(0,102,255,0.2);
}

.form-nafa .form-control::placeholder { color: #6b8299; }

.form-nafa .form-label { color: #8ba3c0; font-size: 0.875rem; }

.form-nafa .form-select option { background: var(--nafa-navy); }

/* Accordion FAQ */
.accordion-nafa .accordion-item {
  background: transparent;
  border: none;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}

.accordion-nafa .accordion-button {
  background: transparent;
  color: #e8eef7;
  font-weight: 600;
  box-shadow: none;
  padding: 1.25rem 0;
}

.accordion-nafa .accordion-button:not(.collapsed) {
  background: transparent;
  color: var(--nafa-cyan);
}

.accordion-nafa .accordion-button::after {
  filter: invert(1);
}

.accordion-nafa .accordion-body {
  color: #8ba3c0;
  padding: 0 0 1.25rem;
}

/* Solution blocks */
.solution-block {
  --solution-accent: #168cf1;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: 2.5rem;
  margin-bottom: 1.5rem;
  border: 1px solid var(--nafa-border);
  border-radius: 24px;
  background: radial-gradient(circle at 92% 10%, rgba(8,201,247,.08), transparent 24%), linear-gradient(145deg, rgba(13,25,41,.92), rgba(5,15,28,.94));
  box-shadow: 0 18px 45px rgba(0,0,0,.16);
  transition: transform .35s ease, border-color .35s ease, box-shadow .35s ease;
}
.solution-block[data-accent="place"] { --solution-accent: #8746e8; }
.solution-block[data-accent="arena"] { --solution-accent: #ff7628; }
.solution-block[data-accent="logistik"] { --solution-accent: #35a879; }
.solution-block::before { content: ''; position: absolute; z-index: -1; inset: 0 auto 0 0; width: 3px; background: linear-gradient(180deg,transparent,var(--solution-accent),transparent); box-shadow: 0 0 22px var(--solution-accent); }
.solution-block::after { content: attr(data-product); position: absolute; z-index: -1; right: 2.5rem; top: 50%; translate: 0 -50%; color: color-mix(in srgb,var(--solution-accent) 7%,transparent); font-size: clamp(8rem,16vw,14rem); line-height: 1; font-weight: 800; letter-spacing: -.08em; pointer-events: none; transition: transform .5s ease,color .5s ease; }
.solution-block > * { position: relative; z-index: 1; }
.solution-kicker { display: inline-flex; align-items: center; gap: .45rem; margin-bottom: 1.25rem; color: var(--solution-accent); font-size: .7rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.solution-kicker::before { content: ''; width: 18px; height: 1px; background: currentColor; box-shadow: 0 0 8px currentColor; }
.footer-nafa .footer-contact { width: fit-content; }

.solution-block:hover { transform: translateY(-6px); border-color: color-mix(in srgb,var(--solution-accent) 48%,transparent); box-shadow: 0 28px 70px rgba(0,0,0,.3), inset 0 0 45px color-mix(in srgb,var(--solution-accent) 5%,transparent); }
.solution-block:hover::after { transform: translateX(-10px) scale(1.04); color: color-mix(in srgb,var(--solution-accent) 11%,transparent); }
.solution-block:last-child { border-bottom: 1px solid var(--nafa-border); }
.solution-block > p { max-width: 920px; font-size: 1.02rem; }
.solution-block .features-grid { margin: 1.4rem -.3rem 1.5rem; padding: 0; list-style: none; }
.solution-block .features-grid li { width: calc(33.333% - .6rem); margin: .3rem; padding: .7rem .8rem; color: #b5cbe2; border: 1px solid rgba(148,184,224,.12); border-radius: 11px; background: rgba(3,15,29,.48); font-size: .84rem; transition: .25s ease; }
.solution-block .features-grid li::before { content: '✓'; margin-right: .55rem; color: var(--solution-accent); font-weight: 800; }
.solution-block .features-grid li:hover { color: #fff; border-color: color-mix(in srgb,var(--solution-accent) 35%,transparent); transform: translateX(3px); }

.features-grid li {
  color: #8ba3c0;
  font-size: 0.9rem;
  margin-bottom: 0.35rem;
}

.features-grid li::marker { color: var(--nafa-cyan); }

.badge-soon {
  background: rgba(245,158,11,0.15) !important;
  color: #f59e0b !important;
}

.section-label {
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--nafa-cyan);
}

.text-muted-nafa { color: #8ba3c0 !important; }

.news-card-img {
  height: 160px;
  background: linear-gradient(135deg, rgba(0,102,255,0.2), rgba(0,200,255,0.1));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 3rem;
}

.tech-tag {
  display: inline-block;
  padding: 0.3rem 0.75rem;
  background: rgba(0,102,255,0.12);
  border: 1px solid rgba(0,102,255,0.25);
  border-radius: 8px;
  font-size: 0.8rem;
  margin: 0.2rem;
}
.footer-nafa img {
  width: 112px;
  height: 74px;
  object-fit: contain;
  padding: 4px 8px;
  background: #fff;
  border-radius: 12px;
  border: 1px solid rgba(8,201,247,.25);
}
.footer-nafa img.footer-logo-dark {
  width: 124px;
  height: 82px;
  padding: 0;
  object-fit: contain;
  object-position: center;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  mix-blend-mode: screen;
}
.navbar-nafa .nav-link.active::after {
  content: '';
  position: absolute;
  left: 1rem;
  right: 1rem;
  bottom: .18rem;
  height: 2px;
  border-radius: 2px;
  background: linear-gradient(90deg, var(--nafa-blue), var(--nafa-cyan));
}

/* Shared layouts used by the editorial and contact pages */
.page-hero p {
  max-width: 720px;
  color: #8ba3c0;
  font-size: 1.1rem;
  margin: 1rem 0 0;
}

.page-hero.text-center p { margin-inline: auto; }

.content-block {
  padding: 3rem 0;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}

.two-col {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2rem;
}

.content-block p,
.news-card p,
.cta-banner p { color: #8ba3c0; }

.tags-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
}

.tag {
  display: inline-flex;
  align-items: center;
  padding: 0.55rem 1rem;
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 999px;
  background: rgba(255,255,255,0.05);
  color: #dbe8f7;
}

.news-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.5rem;
}

.news-card,
.form-section,
.cta-banner,
.faq-list,
.card:not(.card-nafa) {
  overflow: hidden;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.09);
  border-radius: 18px;
}

.card:not(.card-nafa) {
  --bs-card-color: #e8eef7;
  --bs-card-bg: transparent;
  color: #e8eef7;
  padding: 2rem;
}
.card:not(.card-nafa) h1,
.card:not(.card-nafa) h2,
.card:not(.card-nafa) h3,
.card:not(.card-nafa) h4 { color: #f5f9ff; }
.card:not(.card-nafa) p,
.card:not(.card-nafa) .text-muted { color: #9bb0c9 !important; }

/* Press kit cards */
.two-col > .card { justify-content: center; }
.two-col > .card:first-child { align-items: center; }
.two-col > .card:first-child img {
  width: min(220px, 70%);
  height: auto !important;
  padding: .5rem;
  background: #fff;
  border-radius: 14px;
}
.two-col > .card .btn-ghost { width: 100%; }

.news-image {
  min-height: 170px;
  display: grid;
  place-items: center;
  font-size: 3rem;
  background: linear-gradient(135deg, rgba(0,102,255,0.22), rgba(0,200,255,0.07));
}

.news-body { padding: 1.5rem; }
.news-body h3 { font-size: 1.25rem; }
.news-date { color: var(--nafa-cyan); font-size: 0.8rem; font-weight: 700; margin-bottom: 0.75rem; }
.news-link { display: inline-flex; align-items: center; gap: .45rem; color: var(--nafa-cyan); text-decoration: none; font-weight: 600; font-size: .9rem; }
.news-link:hover { color: #fff; }

.cta-banner {
  padding: 3rem 2rem;
  text-align: center;
  background: linear-gradient(135deg, rgba(0,102,255,0.14), rgba(0,200,255,0.06));
}

.form-section { max-width: 820px; margin: 0 auto; padding: 2rem; }
.form-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.form-group { margin-bottom: 1.15rem; }
.form-group label { display: block; color: #a9bad0; margin-bottom: 0.45rem; font-size: 0.9rem; }
.form-group input,
.form-group select,
.form-group textarea {
  width: 100%;
  padding: 0.8rem 1rem;
  color: #e8eef7;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.13);
  border-radius: 10px;
  outline: none;
}
.form-group textarea { min-height: 150px; resize: vertical; }
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus { border-color: var(--nafa-cyan); box-shadow: 0 0 0 3px rgba(0,200,255,0.12); }
.form-group select option { color: #e8eef7; background: var(--nafa-navy); }
.form-success { display: none; text-align: center; padding: 2rem; }
.form-success.is-visible { display: block; }
.contact-form-heading { margin: -2rem -2rem 1.7rem; padding: 1.55rem 2rem; border-bottom: 1px solid rgba(103,190,255,.14); background: linear-gradient(110deg,rgba(7,91,232,.13),rgba(8,201,247,.035)); }
.contact-form-heading span { color: var(--nafa-cyan); font-size: .68rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.contact-form-heading h2 { margin: .35rem 0 .15rem; font-size: 1.55rem; }
.contact-form-heading p { margin: 0; color: #8299b5; font-size: .78rem; }
.page-contact .form-section { position: relative; border-color: rgba(70,180,255,.2); box-shadow: 0 28px 70px rgba(0,0,0,.24),inset 0 0 45px rgba(8,127,245,.035); }
.page-contact .form-group label b { color: var(--nafa-cyan); font-weight: 700; }
.page-contact .form-group input,.page-contact .form-group select,.page-contact .form-group textarea { min-height: 48px; transition: border-color .2s ease,background .2s ease,box-shadow .2s ease; }
.page-contact .form-group input:hover,.page-contact .form-group select:hover,.page-contact .form-group textarea:hover { border-color: rgba(91,190,255,.3); background: rgba(255,255,255,.065); }
.page-contact .form-group textarea { min-height: 175px; }
.field-help { display: block; margin-top: .38rem; color: #7188a3; font-size: .72rem; }
.consent-check { margin: .2rem 0 1.25rem; padding: 1rem 1rem 1rem 2.3rem; border: 1px solid rgba(148,184,224,.12); border-radius: 12px; background: rgba(3,15,29,.38); }
.consent-check label { color: #91a8c2; font-size: .78rem; line-height: 1.5; }
.consent-check a { color: var(--nafa-cyan); }
.contact-submit { width: 100%; min-height: 52px; justify-content: center; gap: .7rem; }
.contact-submit i { transition: transform .2s ease; }.contact-submit:hover i { transform: translateX(4px); }
.contact-submit:disabled { opacity: .72; cursor: wait; }
.form-spinner { animation: formSpin .9s linear infinite; }
.form-feedback { min-height: 1.3rem; margin: .7rem 0 0; text-align: center; font-size: .78rem; }
.form-error { color: #ff9d9d; }
.form-success i { display: block; margin-bottom: .8rem; color: #52dda8; font-size: 2.5rem; }
.form-success h3 { font-size: 1.5rem; }.form-success p { color: #91a8c2; }
@keyframes formSpin { to { transform: rotate(360deg); } }
.legal-identity { padding: 2rem; margin-bottom: 2rem; color: #9bb0c9; background: rgba(13,25,41,.78); border: 1px solid var(--nafa-border); border-radius: 18px; }
.legal-identity h2 { color: #f5f9ff; font-size: 1.5rem; }
.legal-identity strong { color: #fff; }
.legal-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin: 1.25rem 0 2rem; }
.legal-actions .btn { font-size: .88rem; }
.legal-identity .legal-actions { margin-bottom: 0; }
.contact-direct { display: grid; gap: .75rem; margin-top: 1.5rem; }
.contact-direct > a, .contact-direct > div { display: flex; align-items: center; gap: .9rem; padding: 1rem; color: #e8eef7; text-decoration: none; background: rgba(13,25,41,.72); border: 1px solid var(--nafa-border); border-radius: 14px; transition: .2s; }
.contact-direct > a:hover { transform: translateX(4px); border-color: rgba(8,201,247,.32); }
.contact-direct i { width: 38px; height: 38px; display: grid; place-items: center; flex: 0 0 38px; color: var(--nafa-cyan); background: rgba(8,201,247,.08); border-radius: 10px; }
.contact-direct span { min-width: 0; }
.contact-direct small { display: block; color: #7f96b1; }
.contact-direct strong { display: block; overflow-wrap: anywhere; font-size: .9rem; }
.footer-nafa .footer-contact { color: #b5c7db; font-size: .82rem; }
.footer-nafa .footer-contact i { color: var(--nafa-cyan); }
.consent-check { display: flex; align-items: flex-start; gap: .55rem; padding: .9rem 0 1.2rem; }
.consent-check .form-check-input { flex: 0 0 auto; margin-top: .28rem; background-color: rgba(255,255,255,.06); border-color: rgba(255,255,255,.25); }
.consent-check .form-check-input:checked { background-color: var(--nafa-blue); border-color: var(--nafa-blue); }
.consent-check .form-check-label { color: #8fa6c0; font-size: .82rem; }
.consent-check a, .faq-answer a, .legal-identity a, [style*="max-width:820px"] a { color: var(--nafa-cyan); }
.investment-note { max-width: 760px; margin: 1.5rem auto 0; color: #7188a3; font-size: .78rem; text-align: center; }
.legal-updated { display: inline-block; padding: .4rem .75rem; color: #91a7c0; background: rgba(255,255,255,.04); border: 1px solid var(--nafa-border); border-radius: 999px; font-size: .78rem; }
.page-investors .hero-modern h1 { font-size: clamp(2.7rem, 4.35vw, 4.25rem); max-width: 780px; }
.page-services #expertises { scroll-margin-top: 138px; }
.page-services .hero-modern { padding-block: 4.5rem; }
.page-services #expertises.section-space { padding-top: 4.5rem; }
.page-services #expertises .section-heading { margin-bottom: 2.5rem; }
.page-technologies .hero-modern { padding-block: 4.25rem; }
.page-technologies .section-space { padding-top: 4.25rem; }
.page-technologies .section-heading { margin-bottom: 2.5rem; }
.tech-card .card-body { padding: 1.6rem; }
.tech-card .card-body > i { display: block; color: var(--nafa-cyan); font-size: 1.55rem; margin-bottom: 1rem; }
.tech-card h5 { margin-bottom: .45rem; }
.tech-card p { min-height: 3em; color: #8fa6c0; font-size: .88rem; margin-bottom: 1rem; }
.page-technologies .tech-card { --tech-accent: #08c9f7; overflow: hidden; background: linear-gradient(145deg,rgba(14,30,48,.96),rgba(7,18,31,.98)); }
.page-technologies .row > div:nth-child(2) .tech-card { --tech-accent: #6d8cff; }.page-technologies .row > div:nth-child(3) .tech-card { --tech-accent: #8b67ff; }.page-technologies .row > div:nth-child(4) .tech-card { --tech-accent: #35d6a0; }.page-technologies .row > div:nth-child(5) .tech-card { --tech-accent: #ff9b42; }.page-technologies .row > div:nth-child(6) .tech-card { --tech-accent: #e66cff; }
.page-technologies .tech-card::before { background: linear-gradient(90deg,transparent,var(--tech-accent),transparent); box-shadow: 0 0 15px var(--tech-accent); }
.page-technologies .tech-card .card-body { position: relative; overflow: hidden; }
.page-technologies .tech-card .card-body::after { position: absolute; right: 1.1rem; top: .8rem; color: color-mix(in srgb,var(--tech-accent) 13%,transparent); font-size: 3.2rem; font-weight: 800; line-height: 1; }
.page-technologies .row > div:nth-child(1) .tech-card .card-body::after { content: '01'; }.page-technologies .row > div:nth-child(2) .tech-card .card-body::after { content: '02'; }.page-technologies .row > div:nth-child(3) .tech-card .card-body::after { content: '03'; }.page-technologies .row > div:nth-child(4) .tech-card .card-body::after { content: '04'; }.page-technologies .row > div:nth-child(5) .tech-card .card-body::after { content: '05'; }.page-technologies .row > div:nth-child(6) .tech-card .card-body::after { content: '06'; }
.page-technologies .tech-card .card-body > i, .page-technologies .tech-card h5 { color: var(--tech-accent) !important; }
.page-technologies .tech-card:hover { border-color: color-mix(in srgb,var(--tech-accent) 38%,transparent); box-shadow: 0 25px 58px rgba(0,0,0,.3),inset 0 0 40px color-mix(in srgb,var(--tech-accent) 5%,transparent); }
.page-technologies .tech-tag { transition: .22s ease; }
.page-technologies .tech-tag:hover { color: #fff; border-color: color-mix(in srgb,var(--tech-accent) 55%,transparent); background: color-mix(in srgb,var(--tech-accent) 13%,#071426); transform: translateY(-2px); box-shadow: 0 8px 18px rgba(0,0,0,.2); }
.page-technologies .split-visual { position: relative; isolation: isolate; }
.page-technologies .split-visual::before { content: ''; position: absolute; z-index: 0; left: 50%; top: 17%; bottom: 17%; width: 1px; background: linear-gradient(transparent,var(--nafa-cyan),#8b67ff,transparent); box-shadow: 0 0 10px rgba(8,201,247,.4); }
.page-technologies .split-visual::after { content: ''; position: absolute; z-index: 1; left: calc(50% - 3px); top: 17%; width: 7px; height: 7px; border-radius: 50%; background: #c6f5ff; box-shadow: 0 0 13px #08c9f7; animation: techOpsSignal 4s ease-in-out infinite; }
.page-technologies .visual-chip { position: relative; z-index: 2; transition: .3s ease; }
.page-technologies .visual-chip:hover { transform: translateX(6px); border-color: rgba(8,201,247,.32); }.page-technologies .visual-chip:nth-child(2):hover { transform: translateX(-6px); }
.page-technologies .metric-item { position: relative; transition: .25s ease; }
.page-technologies .metric-item::before { content: ''; position: absolute; left: 20%; right: 20%; top: 0; height: 2px; background: linear-gradient(90deg,transparent,var(--nafa-cyan),transparent); opacity: 0; transition: opacity .25s ease; }
.page-technologies .metric-item:hover { background: rgba(8,127,245,.06); }.page-technologies .metric-item:hover::before { opacity: 1; }
@keyframes techOpsSignal { 0% { top: 17%; opacity: 0; } 15%,85% { opacity: 1; } 100% { top: calc(83% - 7px); opacity: 0; } }
.page-investors .ecosystem-node span { color: #c5d6e9; font-size: .74rem; }
.page-investors .company-subnav-inner { padding: .45rem; background: rgba(7,20,38,.86); }
.page-investors .company-subnav-inner a { padding-block: .58rem; color: #8da4bf; }
.investor-flow { display: grid; grid-template-columns: 1fr auto 1fr auto 1.2fr auto 1fr; align-items: center; gap: .75rem; }
.investor-flow > div { min-height: 145px; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding: 1.25rem; background: rgba(13,25,41,.74); border: 1px solid var(--nafa-border); border-radius: 18px; }
.investor-flow > i { color: var(--nafa-cyan); }
.investor-flow strong { margin-top: .8rem; color: #fff; }
.investor-flow small { color: #8299b5; }
.flow-icon { width: 42px; height: 42px; display: grid; place-items: center; color: #fff; border-radius: 11px; font-size: .72rem; font-weight: 700; }
.flow-icon.shared { background: linear-gradient(135deg,var(--nafa-royal),var(--nafa-cyan)); }
.investor-roadmap { position: relative; }
.investor-roadmap::before { content: ''; position: absolute; left: 16%; right: 16%; top: 52px; height: 1px; background: linear-gradient(90deg,var(--nafa-blue),var(--nafa-cyan)); opacity: .45; }
.investor-roadmap .process-step { height: 100%; position: relative; z-index: 1; padding: 1.6rem; background: #071426; border: 1px solid var(--nafa-border); border-radius: 18px; }
.investor-roadmap .step-number { color: rgba(8,201,247,.32); }
.product-facts { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .9rem; }
.product-facts > a, .product-facts > div { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .9rem; padding: 1rem; color: #e8eef7; text-decoration: none; background: rgba(13,25,41,.74); border: 1px solid var(--nafa-border); border-radius: 15px; }
.product-facts > a:hover { border-color: rgba(8,201,247,.35); }
.product-facts strong, .product-facts small { display: block; }
.product-facts small { color: #8299b5; font-size: .76rem; }

@media (max-width: 991.98px) {
  .investor-flow { grid-template-columns: 1fr 1fr; }
  .investor-flow > i { display: none; }
  .investor-roadmap::before { display: none; }
}

@media (max-width: 767.98px) {
  .investor-flow, .product-facts { grid-template-columns: 1fr; }
  .investor-flow > div { min-height: auto; }
}

@media (max-width: 399.98px) {
  .product-facts > a, .product-facts > div { grid-template-columns: auto 1fr; }
  .product-facts .product-status { grid-column: 1 / -1; justify-self: start; }
}

.faq-item + .faq-item { border-top: 1px solid rgba(255,255,255,0.08); }
.faq-question {
  width: 100%;
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.25rem 1.5rem;
  color: #e8eef7;
  background: transparent;
  border: 0;
  text-align: left;
  font-weight: 600;
}
.faq-question span { color: var(--nafa-cyan); transition: transform .2s; }
.faq-item.is-open .faq-question span { transform: rotate(45deg); }
.faq-answer { display: none; padding: 0 1.5rem 1.25rem; color: #8ba3c0; }
.faq-answer p { margin: 0; }
.faq-item.is-open .faq-answer { display: block; }

.btn-primary { background: linear-gradient(135deg, #0066ff, #00aeea); border: 0; }
.btn-ghost { border: 1px solid rgba(255,255,255,0.22); color: #fff; }
.btn-ghost:hover { color: #fff; border-color: var(--nafa-cyan); }

@media (max-width: 767.98px) {
  body { padding-top: 98px; }
  .navbar-nafa { min-height: 98px; }
  .navbar-nafa .navbar-brand img {
    width: 124px;
    height: 80px;
    padding: 3px 6px;
    border-radius: 11px;
    box-shadow: 0 8px 24px rgba(8,127,245,.16);
  }
  .navbar-nafa .navbar-brand { overflow: visible; background: transparent; border: 0; }
  .navbar-nafa .navbar-brand img { transform: none; border: 0; box-shadow: none; }
  .navbar-nafa .navbar-toggler {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    color: #fff;
    background: rgba(8,201,247,.07);
    border: 1px solid rgba(8,201,247,.2) !important;
    border-radius: 11px;
  }
  .navbar-nafa .navbar-toggler-icon { width: 1.35rem; height: 1.35rem; }
  .page-hero { padding: 3rem 0 2.25rem; }
  .page-hero h1 { font-size: 2.1rem; }
  .news-grid, .two-col, .form-row { grid-template-columns: 1fr; }
  .form-section { padding: 1.25rem; }
  .cta-box, .cta-banner { padding: 2rem 1.25rem; }
  .stat-box .stat-value { font-size: 1.35rem; }
}

@media (min-width: 768px) and (max-width: 1199.98px) {
  body { padding-top: 100px; }
  .navbar-nafa { min-height: 100px; }
  .navbar-nafa .navbar-brand img { width: 120px; height: 80px; }
}

/* Responsive system shared by every page */
img { max-width: 100%; }
html { scroll-padding-top: 130px; }
body, main, section, .container, .row, [class*="col-"] { min-width: 0; }
h1, h2, h3, h4, h5, h6, p, a, strong, small { overflow-wrap: break-word; }
.tech-network, .product-universe, .ecosystem-visual, .tech-spectrum, .page-signature, .metric-strip, .company-subnav-inner, .solution-jump .glass-panel { width: 100%; max-width: 100%; }
.tech-network-node, .universe-product, .ecosystem-node, .signature-node, .visual-chip, .mockup-item { min-width: 0; }
.tech-network-node strong, .tech-network-node small, .universe-product strong, .universe-product small, .signature-node span { overflow-wrap: anywhere; }
.row { --bs-gutter-y: 1.5rem; }
.btn { white-space: normal; }
.table-responsive { border-radius: 16px; }

@media (max-width: 1199.98px) {
  .navbar-nafa { padding-block: .55rem; }
  .navbar-nafa .navbar-toggler { padding: .55rem; box-shadow: none !important; }
  .navbar-nafa .navbar-collapse {
    margin-top: .65rem;
    padding: 1rem;
    max-height: calc(100vh - 120px);
    overflow-y: auto;
    background: rgba(6,22,45,.98);
    border: 1px solid rgba(8,201,247,.16);
    border-radius: 16px;
    box-shadow: 0 22px 55px rgba(0,0,0,.38);
  }
  .navbar-nafa .navbar-nav { gap: .2rem; }
  .navbar-nafa .nav-link { padding: .72rem .85rem !important; }
  .navbar-nafa .nav-link.active::after { display: none; }
  .navbar-nafa .dropdown-menu {
    margin: .2rem 0 .55rem;
    padding: .35rem;
    background: rgba(2,11,24,.55);
    border-radius: 10px;
    box-shadow: none;
  }
  .navbar-nafa .dropdown-item { padding-left: 1.2rem; }
  .navbar-nafa .company-menu { width: 100%; grid-template-columns: 1fr; }
  .company-menu-item small { display: none; }
  .navbar-nafa .navbar-collapse > .btn-nafa { display: block; width: 100%; margin-top: .75rem; padding-block: .7rem; }
  .hero-section { min-height: auto; padding-block: 5.5rem !important; }
  .hero-modern { padding: 5rem 0 4.5rem; }
  .solution-block { scroll-margin-top: 110px; }
  .company-menu-item { width: 100%; }
  .page-services #expertises { scroll-margin-top: 118px; }
}

@media (max-width: 991.98px) {
  .container { --bs-gutter-x: 2.25rem; }
  .section-space { padding: 4rem 0; }
  .hero-section .row { row-gap: 3rem !important; }
  .hero-section h1 { font-size: clamp(2.5rem, 7vw, 4.25rem); }
  .hero-modern h1 { font-size: clamp(2.5rem, 7vw, 4rem); }
  .hero-modern .hero-copy, .page-hero p { font-size: 1.05rem; }
  .section-heading { margin-bottom: 2.25rem; }
  .solution-block { padding: 1.5rem; border-radius: 18px; }
  .solution-block .features-grid li { width: calc(50% - .6rem); }
  .solution-block::after { right: 1.5rem; font-size: clamp(7rem,22vw,11rem); }
  .solution-block .d-flex { flex-wrap: wrap; }
  .ecosystem-visual { max-width: 560px; min-height: 340px; margin-inline: auto; }
  .news-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cta-modern { padding: 3rem 2rem; }
  .footer-nafa .row > div:first-child { margin-bottom: .75rem; }
  .two-col { gap: 1.5rem; }
  .content-block { padding-block: 3.5rem; }
  .form-section { max-width: 100%; }
  .legal-actions .btn { flex: 1 1 220px; }
  .service-method::before, .service-method::after { display: none; }
}

@media (max-width: 767.98px) {
  .container { --bs-gutter-x: 2rem; }
  .page-signature { grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: 2.25rem; padding: .75rem; gap: .6rem; border-radius: 18px !important; }
  .africa-digital-map { min-height: 340px; border-radius: 20px; }
  .map-capability { padding: .4rem .5rem; font-size: .6rem; }
  .africa-map-core { width: 60px; height: 60px; border-radius: 18px; }
  .signature-node { min-height: 62px; padding: .55rem; border-radius: 13px !important; }
  .signature-node span { font-size: .72rem; }
  .signature-line { left: 12%; right: 12%; }
  .ring-a { width: 280px; height: 280px; right: -110px; top: -100px; }
  .ring-b { width: 180px; height: 180px; left: -70px; bottom: -90px; }
  .ambient-particle:nth-of-type(n+8) { display: none; }
  .product-universe { min-height: 420px; border-radius: 20px; }
  .universe-core { width: 86px; height: 86px; border-radius: 24px; }
  .universe-core span { font-size: 2.1rem; }
  .universe-product { min-width: 126px; gap: .5rem; padding: .55rem; border-radius: 13px; }
  .universe-product b { width: 34px; height: 34px; flex-basis: 34px; border-radius: 10px; font-size: .72rem; }
  .universe-product strong { font-size: .7rem; }
  .universe-product small { font-size: .56rem; }
  .universe-ticket { left: 3%; }.universe-place { right: 3%; }.universe-arena { left: 3%; }.universe-logistik { right: 3%; }
  .universe-status { bottom: 3%; font-size: .57rem; }
  .tech-network, .tech-network-compact { min-height: 390px; border-radius: 20px; }
  .tech-spectrum { margin-inline: -.25rem; }
  .tech-spectrum-track { animation-duration: 24s; }
  .tech-spectrum-row.reverse .tech-spectrum-track { animation-duration: 28s; }
  .tech-spectrum span { padding: .42rem .68rem; font-size: .66rem; }
  .tech-flow-summary { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .55rem; }
  .tech-flow-summary span { justify-content: center; padding: .5rem; border: 1px solid rgba(8,201,247,.14); border-radius: 12px; background: rgba(7,25,46,.72); }
  .tech-flow-summary > i { display: none; }
  .tech-network-node { width: 92px; min-height: 58px; padding: .5rem; border-radius: 13px; }
  .tech-network-node strong { font-size: .75rem; }
  .tech-network-node small { font-size: .58rem; }
  .tech-network-core { width: 82px; height: 82px; border-radius: 23px; }
  .tech-network-core strong { font-size: 2rem; }
  .tech-network-core small { font-size: .62rem; }
  .node-js, .node-data { left: 4%; }
  .node-java, .node-cloud { right: 4%; }
  .node-php { left: 2%; }
  .node-csharp { right: 2%; }
  .node-api { left: 50%; bottom: 2%; }
  .section-space { padding: 3.5rem 0; }
  .page-hero { padding: 3.25rem 0 2.5rem; }
  .hero-section { padding-block: 4rem !important; }
  .hero-modern { padding: 4rem 0 3.5rem; }
  .hero-section h1, .hero-modern h1, .page-hero h1 { font-size: clamp(2.25rem, 10vw, 3.25rem); line-height: 1.08; }
  .hero-section .lead, .hero-modern .hero-copy { font-size: 1rem; }
  .hero-section .btn, .hero-modern .btn { width: 100%; }
  .mockup-panel { padding: 1rem; }
  .news-grid, .two-col, .form-row { grid-template-columns: 1fr; }
  .metric-strip { grid-template-columns: 1fr; }
  .metric-item { border-right: 0; border-bottom: 1px solid var(--nafa-border); }
  .metric-item:nth-child(2) { border-right: 0; }
  .metric-item:last-child { border-bottom: 0; }
  .split-visual { min-height: 330px; padding: 1.25rem; }
  .visual-chip { width: 92%; }
  .visual-chip:nth-child(2) { align-self: flex-end; }
  .cta-modern { padding: 2.4rem 1.35rem; border-radius: 20px; }
  .cta-modern h2 { font-size: 1.75rem; }
  .cta-modern .btn { width: 100%; }
  .form-section { padding: 1.25rem; }
  .faq-question { padding: 1.1rem; }
  .faq-answer { padding-inline: 1.1rem; }
  .features-grid { padding-left: 0; }
  .solution-block .features-grid { margin-inline: 0; }
  .solution-block .features-grid li { width: 100%; margin: .25rem 0; }
  .solution-block::after { right: .8rem; top: 42%; font-size: 7rem; opacity: .65; }
  .solution-kicker { margin-bottom: 1rem; }
  .solution-block h2 { font-size: 1.55rem; }
  .solution-jump { margin-top: -1rem; }
  .solution-jump .glass-panel { justify-content: flex-start; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .solution-jump a { white-space: nowrap; }
  .hero-side-visual { min-height: 330px; padding: 1.25rem; }
  .career-tile { width: 90%; }
  .company-subnav { margin-top: -.9rem; }
  .company-subnav .container { padding-inline: .75rem; }
  .company-subnav-inner { justify-content: flex-start; }
  .company-subnav-inner a { min-width: auto; padding-inline: .8rem; }
  .company-subnav-inner { scroll-snap-type: x proximity; }
  .company-subnav-inner a { scroll-snap-align: start; }
  .footer-nafa { padding-top: 2.5rem; }
  .footer-nafa .d-flex.border-top { text-align: center; gap: .7rem; }
  .footer-nafa .row > [class*="col-"] { min-width: 0; }
  .content-block { padding-block: 3rem; }
  .legal-identity { padding: 1.35rem; }
  .legal-actions { flex-direction: column; }
  .legal-actions .btn { flex: none; width: 100%; }
  .contact-direct strong { font-size: .84rem; }
  .news-card, .service-card-modern, .feature-panel, .solution-block { height: auto; }
  .tags-grid { gap: .5rem; }
  .page-hero p, .hero-copy { max-width: 100%; }
  .product-status { margin-top: .25rem; }
  .page-services #expertises { scroll-margin-top: 98px; }
  .page-services .hero-modern { padding-block: 3.5rem; }
  .page-services #expertises.section-space { padding-top: 3.5rem; }
  .page-technologies .hero-modern { padding-block: 3.5rem; }
  .page-technologies .section-space { padding-top: 3.5rem; }
  .tech-card p { min-height: 0; }
  .service-method { padding-left: .8rem; }
  .service-method::before { display: block; left: .72rem; right: auto; top: 1rem; bottom: 1rem; width: 1px; height: auto; background: linear-gradient(180deg,transparent,var(--nafa-cyan),#8b67ff,#35d6a0,transparent); }
  .service-method::after { display: block; left: calc(.72rem - 3px); top: 1rem; animation: serviceMethodSignalMobile 5s ease-in-out infinite; }
  .service-method .process-step { margin-left: .75rem; }
}

@keyframes serviceMethodSignalMobile { 0% { top: 1rem; opacity: 0; } 12%,88% { opacity: 1; } 100% { top: calc(100% - 1.5rem); opacity: 0; } }

@media (max-width: 575.98px) {
  body { font-size: .96rem; }
  .navbar-nafa .navbar-brand img { width: 118px; height: 76px; }
  .navbar-nafa .navbar-collapse { max-height: calc(100vh - 98px); }
  .hero-badge { font-size: .72rem; padding-inline: .75rem; }
  .section-heading h2 { font-size: 1.9rem; }
  .service-card-modern, .feature-panel { padding: 1.45rem; }
  .service-icon::after { left: 60px; font-size: 2.8rem; }
  .mini-list li { padding: .48rem .58rem; font-size: .78rem; }
  .process-step { padding: 1.25rem .5rem; }
  .stat-box { padding: 1.35rem .6rem; }
  .stat-box .stat-value { font-size: 1.2rem; overflow-wrap: anywhere; }
  .tag, .tag-nafa { font-size: .78rem; padding: .45rem .75rem; }
  .news-body { padding: 1.2rem; }
  .ecosystem-visual { min-height: 330px; }
  .ecosystem-core { width: 68px; height: 68px; }
  .ecosystem-node { width: 54px; height: 54px; border-radius: 14px; }
  .ecosystem-node span { top: 58px; }
  .product-actions .btn { width: 100%; }
  .navbar-nafa .container { --bs-gutter-x: 1.5rem; }
  .navbar-nafa .navbar-collapse { padding: .75rem; border-radius: 12px; }
  .navbar-nafa .nav-link { font-size: .9rem; }
  .hero-section h1, .hero-modern h1, .page-hero h1 { hyphens: auto; }
  .hero-section .d-flex.gap-3, .hero-modern .d-flex.gap-3 { gap: .65rem !important; }
  .section-label, .eyebrow { font-size: .7rem; letter-spacing: .1em; }
  .mockup-item { gap: .75rem; padding: .65rem; }
  .mockup-item .icon-box { width: 46px; height: 46px; flex: 0 0 46px; }
  .footer-nafa { padding: 2rem 0 1.2rem; }
  .footer-nafa .container { padding-inline: 1.25rem; }
  .footer-nafa .row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1.4rem; row-gap: 1.75rem; margin-inline: 0; }
  .footer-nafa .row > [class*="col-"] { width: auto; margin: 0; padding-inline: .15rem; }
  .footer-nafa .row > div:first-child { grid-column: 1 / -1; display: flex; flex-direction: column; align-items: center; text-align: center; padding: 0 0 1.4rem; border-bottom: 1px solid var(--nafa-border); }
  .footer-nafa .row > div:first-child img { width: 124px; height: 82px; }
  .footer-nafa .row > div:first-child p { max-width: 280px; margin-bottom: .7rem; }
  .footer-nafa h6 { margin: 0 0 .75rem; color: #f0f6ff; font-size: .75rem; }
  .footer-nafa a { padding-block: .27rem; font-size: .82rem; line-height: 1.35; }
  .footer-nafa .footer-contact { width: auto; font-size: .8rem; }
  .footer-nafa .d-flex.border-top { margin-top: .4rem; padding-top: 1.2rem !important; font-size: .78rem; line-height: 1.5; }
  .footer-nafa .d-flex.border-top small { display: block; width: 100%; }
}

@media (max-width: 399.98px) {
  body { padding-top: 92px; }
  .navbar-nafa { min-height: 92px; }
  .navbar-nafa .navbar-brand img { width: 112px; height: 72px; }
  .container { --bs-gutter-x: 1.15rem; }
  .hero-section, .hero-modern { padding-block: 3.25rem !important; }
  .hero-section h1, .hero-modern h1, .page-hero h1 { font-size: 2rem; }
  .section-heading h2 { font-size: 1.7rem; }
  .cta-modern h2 { font-size: 1.55rem; }
  .solution-block { padding: 1.15rem; }
  .solution-block h2 { font-size: 1.3rem; }
  .icon-box { width: 48px; height: 48px; }
  .ecosystem-visual { min-height: 300px; }
  .ecosystem-node { width: 48px; height: 48px; }
  .ecosystem-node span { display: none; }
  .career-tile { width: 100%; margin-left: 0 !important; }
  .company-subnav-inner a { min-width: max-content; }
  .contact-direct > a, .contact-direct > div { padding: .8rem; }
  .footer-nafa .container { padding-inline: 1rem; }
  .footer-nafa .row { column-gap: 1rem; }
  .footer-nafa a { font-size: .79rem; }
  .footer-nafa h6 { font-size: .72rem; }
  .product-universe { min-height: 390px; }
  .universe-product { min-width: 108px; }
  .universe-product small { display: none; }
  .universe-status { gap: .3rem; padding-inline: .55rem; }
  .page-signature { margin-inline: -.2rem; }
  .signature-node { gap: .4rem; }
  .signature-node b { font-size: .62rem; }
  .signature-node span { font-size: .67rem; }
  .tech-network, .tech-network-compact { min-height: 360px; }
  .tech-network-node { width: 82px; min-height: 52px; padding: .38rem; }
  .tech-network-node strong { font-size: .66rem; }
  .tech-network-node small { font-size: .52rem; }
  .tech-network-core { width: 72px; height: 72px; border-radius: 20px; }
  .tech-network-core strong { font-size: 1.65rem; }
  .product-universe { min-height: 370px; }
  .universe-core { width: 72px; height: 72px; border-radius: 20px; }
  .universe-core span { font-size: 1.75rem; }
  .universe-core small { display: none; }
  .universe-product { min-width: 0; width: 96px; padding: .42rem; }
  .universe-product b { width: 30px; height: 30px; flex-basis: 30px; }
  .universe-product strong { font-size: .62rem; }
  .universe-status { width: calc(100% - 1rem); white-space: normal; flex-wrap: wrap; }
  .ecosystem-live { max-width: calc(100% - 1rem); white-space: normal; text-align: center; }
  .tech-spectrum { margin-inline: 0; }
  .tech-flow-summary span { min-width: 0; font-size: .68rem; }
  .page-signature { grid-template-columns: 1fr 1fr; width: 100%; margin-inline: 0; }
  .africa-digital-map { min-height: 310px; }
  .map-capability span { display: none; }
  .map-capability { width: 34px; height: 34px; justify-content: center; padding: 0; }
  .map-live { max-width: calc(100% - 1rem); white-space: normal; text-align: center; }
}

@media (max-width: 339.98px) {
  .container { --bs-gutter-x: 1rem; }
  .hero-section h1, .hero-modern h1, .page-hero h1 { font-size: 1.8rem; }
  .tech-network-node { width: 76px; }
  .universe-product { width: 90px; }
  .universe-product span { max-width: 48px; }
  .signature-node { flex-direction: column; gap: .15rem; text-align: center; }
  .footer-nafa .row { grid-template-columns: 1fr; }
  .footer-nafa .row > div:first-child { grid-column: 1; }
}

/* Partner ecosystem: a living network instead of a static tag list */
.partner-network { position: relative; min-height: 500px; margin: 2.8rem 0 3rem; overflow: hidden; border: 1px solid rgba(68,190,255,.25); border-radius: 30px; background: radial-gradient(circle at 50% 48%,rgba(23,131,255,.17),transparent 24%),linear-gradient(135deg,rgba(13,31,54,.96),rgba(5,17,31,.94)); box-shadow: 0 32px 80px rgba(0,0,0,.28),inset 0 0 80px rgba(21,127,255,.045); isolation: isolate; }
.partner-network::before { content: ''; position: absolute; inset: 0; z-index: -1; opacity: .3; background-image: linear-gradient(rgba(90,188,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(90,188,255,.07) 1px,transparent 1px); background-size: 54px 54px; mask-image: radial-gradient(circle,#000,transparent 78%); }
.partner-network::after { content: ''; position: absolute; width: 220px; height: 220px; top: -100px; right: -60px; border-radius: 50%; border: 1px solid rgba(74,207,255,.18); box-shadow: 0 0 90px rgba(35,151,255,.13); animation: partnerGlow 5s ease-in-out infinite; }
.partner-network-lines { position: absolute; inset: 0; width: 100%; height: calc(100% - 44px); overflow: visible; }
.partner-network-lines path { fill: none; stroke: rgba(63,190,255,.38); stroke-width: 1.7; stroke-dasharray: 5 10; animation: partnerSignal 8s linear infinite; filter: drop-shadow(0 0 3px rgba(50,191,255,.3)); }
.partner-network-lines path:nth-child(2n) { animation-direction: reverse; animation-duration: 10s; }
.partner-orbit { position: absolute; top: 50%; left: 50%; border: 1px solid rgba(56,182,255,.16); border-radius: 50%; transform: translate(-50%,-55%) rotate(-10deg); animation: partnerOrbit 18s linear infinite; }
.partner-orbit-one { width: 320px; height: 190px; }
.partner-orbit-two { width: 235px; height: 310px; animation-direction: reverse; animation-duration: 23s; }
.partner-hub { position: absolute; z-index: 3; top: 50%; left: 50%; width: 118px; height: 118px; transform: translate(-50%,-58%); display: grid; place-content: center; text-align: center; border: 1px solid rgba(119,224,255,.7); border-radius: 30px; color: #fff; background: linear-gradient(145deg,#146de7,#3fcdf0); box-shadow: 0 0 0 10px rgba(42,155,255,.08),0 0 55px rgba(29,164,255,.4); animation: partnerHub 4s ease-in-out infinite; }
.partner-hub strong { font-size: 2.35rem; line-height: .9; }
.partner-hub span { margin-top: .4rem; font-weight: 800; font-size: .75rem; }
.partner-hub small { margin-top: .12rem; font-size: .56rem; text-transform: uppercase; letter-spacing: .08em; opacity: .82; }
.partner-node { position: absolute; z-index: 2; min-width: 128px; display: flex; align-items: center; justify-content: center; gap: .55rem; padding: .8rem 1rem; border: 1px solid rgba(78,182,244,.35); border-radius: 17px; color: #edf8ff; background: rgba(8,24,43,.9); box-shadow: 0 10px 30px rgba(0,0,0,.22),inset 0 0 22px rgba(30,137,255,.04); backdrop-filter: blur(10px); animation: partnerNode 4.8s ease-in-out infinite; }
.partner-node i { color: var(--nafa-cyan); font-size: 1rem; }
.partner-node span { font-size: .76rem; font-weight: 700; white-space: nowrap; }
.partner-node:nth-of-type(3n) { animation-delay: -1.6s; }.partner-node:nth-of-type(3n+1) { animation-delay: -3.2s; }
.node-bank { top: 10%; left: 7%; }.node-telecom { top: 7%; left: 31%; }.node-fintech { top: 7%; right: 31%; }.node-events { top: 10%; right: 7%; }
.node-institutions { top: 43%; left: 5%; }.node-startups { top: 43%; right: 5%; }.node-companies { bottom: 14%; left: 12%; }.node-investors { bottom: 10%; left: 50%; transform: translateX(-50%); }.node-tech { bottom: 14%; right: 12%; }
.partner-network-status { position: absolute; z-index: 4; left: 50%; bottom: 0; width: 100%; min-height: 44px; transform: translateX(-50%); display: flex; align-items: center; justify-content: center; gap: .6rem; padding: .65rem 1rem; border-top: 1px solid rgba(76,183,245,.18); color: #91b8d7; background: rgba(3,13,25,.72); font-size: .72rem; text-align: center; }
.partner-network-status i { width: 7px; height: 7px; border-radius: 50%; background: #4fe0a4; box-shadow: 0 0 12px #4fe0a4; animation: livePulse 1.8s ease-in-out infinite; }
.partner-models .feature-panel { min-height: 250px; padding-top: 2.2rem; overflow: hidden; }
.partner-models .feature-panel::after { content: ''; position: absolute; z-index: 0; width: 150px; height: 150px; right: -65px; bottom: -75px; border: 1px solid rgba(53,196,255,.12); border-radius: 50%; box-shadow: 0 0 55px rgba(34,153,255,.08); transition: transform .35s ease; }
.partner-models .feature-panel:hover::after { transform: scale(1.25); }
.partner-model-label { display: block; margin-bottom: 1.1rem; color: var(--nafa-cyan); font-size: .65rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.partner-models .feature-panel > .bi { display: grid; place-items: center; width: 46px; height: 46px; border: 1px solid rgba(45,190,255,.28); border-radius: 14px; background: rgba(21,133,213,.1); }
@keyframes partnerSignal { to { stroke-dashoffset: -120; } }
@keyframes partnerOrbit { to { transform: translate(-50%,-55%) rotate(350deg); } }
@keyframes partnerHub { 50% { transform: translate(-50%,-58%) scale(1.045); box-shadow: 0 0 0 15px rgba(42,155,255,.045),0 0 70px rgba(29,164,255,.52); } }
@keyframes partnerNode { 50% { translate: 0 -5px; border-color: rgba(84,210,255,.62); } }
@keyframes partnerGlow { 50% { transform: scale(1.12); opacity: .6; } }

@media (max-width: 767.98px) {
  .partner-network { min-height: 500px; display: block; padding: 0; border-radius: 22px; }
  .partner-network-lines { display: block; height: calc(100% - 48px); }
  .partner-orbit { display: block; }
  .partner-orbit-one { width: 190px; height: 125px; }
  .partner-orbit-two { width: 135px; height: 205px; }
  .partner-hub { position: absolute; top: 50%; left: 50%; width: 78px; height: 78px; transform: translate(-50%,-58%); border-radius: 21px; animation: partnerHubMobile 4s ease-in-out infinite; }
  .partner-hub strong { font-size: 1.55rem; }
  .partner-hub span { font-size: .53rem; line-height: 1.05; }
  .partner-hub small { display: none; }
  .partner-node { position: absolute; min-width: 0; width: 92px; justify-content: center; gap: .3rem; padding: .55rem .35rem; animation-duration: 5.5s; }
  .partner-node i { font-size: .72rem; }
  .partner-node span { max-width: 65px; font-size: .55rem; overflow: hidden; text-overflow: ellipsis; }
  .node-bank { top: 8%; left: 4%; }.node-telecom { top: 8%; left: 50%; transform: translateX(-50%); }.node-fintech { top: 8%; right: 4%; }
  .node-events { top: 30%; right: 3%; }.node-institutions { top: 30%; left: 3%; }
  .node-startups { top: 58%; right: 3%; }.node-companies { bottom: 13%; left: 3%; }.node-investors { bottom: 11%; left: 50%; transform: translateX(-50%); }.node-tech { bottom: 13%; right: 3%; }
  .partner-network-status { font-size: .62rem; line-height: 1.35; }
  .partner-models .feature-panel { min-height: 0; }
}
@media (max-width: 339.98px) { .partner-node { width: 82px; }.partner-node span { max-width: 57px; font-size: .5rem; } }
@keyframes partnerHubMobile { 50% { transform: translate(-50%,-58%) scale(1.045); box-shadow: 0 0 0 9px rgba(42,155,255,.05),0 0 45px rgba(29,164,255,.48); } }

/* Keep the storytelling visuals complete on phones instead of hiding their labels. */
@media (max-width: 575.98px) {
  html,body { width: 100%; max-width: 100%; overflow-x: clip; }
  .navbar-nafa .navbar-brand img.brand-logo-dark { width: 108px; height: 68px; border-radius: 0; }
  .footer-nafa img.footer-logo-dark { width: 112px; height: 74px; }
  .footer-brand-lockup { gap: .55rem; }
  body > section.container,
  body > .content-block > .container,
  .hero-modern > .container,
  .hero-section > .container,
  .page-hero > .container { width: 100%; padding-left: max(1rem,env(safe-area-inset-left)) !important; padding-right: max(1rem,env(safe-area-inset-right)) !important; margin-inline: auto !important; }
  .section-heading { width: 100%; max-width: 100%; margin-bottom: 1.65rem; }
  .section-heading h2 { font-size: clamp(1.65rem,8vw,2rem); line-height: 1.13; }
  .eyebrow { font-size: .65rem; letter-spacing: .1em; }
  .tags-grid { gap: .45rem; margin-bottom: 2rem !important; }
  .tag { padding: .45rem .7rem; font-size: .68rem; }
  .page-investors .product-facts > a,
  .page-investors .product-facts > div { grid-template-columns: auto minmax(0,1fr); gap: .7rem; padding: .8rem; }
  .page-investors .product-facts .product-status { grid-column: 1/-1; justify-self: stretch; justify-content: center; }
  .page-investors .cta-modern { margin-inline: 0; padding: 2rem 1rem; }
  .page-investors .cta-modern p { font-size: .85rem; }
  .page-investors .investment-note { padding-inline: .35rem; }
  .page-contact .form-section { padding: 1.15rem; }
  .page-contact .contact-form-heading { margin: -1.15rem -1.15rem 1.35rem; padding: 1.25rem 1.15rem; }
  .page-contact .contact-form-heading h2 { font-size: 1.35rem; }
  .page-contact .form-group { margin-bottom: 1rem; }
  .page-contact .consent-check { padding: .85rem .85rem .85rem 2.15rem; }
  .ecosystem-node span { display: block; top: 54px; max-width: 72px; overflow: hidden; text-overflow: ellipsis; font-size: .52rem; text-align: center; }
  .page-investors .ecosystem-node span { font-size: .52rem; }
  .universe-product small { display: block; font-size: .48rem; line-height: 1.15; }
  .tech-network,.product-universe,.ecosystem-visual,.africa-digital-map,.partner-network { box-shadow: 0 20px 50px rgba(0,0,0,.3),inset 0 0 45px rgba(8,201,247,.035); }
  .hero-modern .row > [class*="col-"] + [class*="col-"] { margin-top: .5rem; }
}

@media (prefers-reduced-motion: reduce) {
  .ambient-ring,
  .ambient-scan,
  .ambient-particle,
  .tech-spectrum-track,
  .signature-line::after,
  .signature-line i,
  .signature-node,
  .tech-flow-summary i::after,
  .africa-shape,
  .africa-route,
  .map-node,
  .africa-map-core,
  .map-capability,
  .map-live i,
  .service-method::after,
  .page-technologies .split-visual::after,
  .tech-network::before,
  .tech-network::after,
  .tech-network-lines path,
  .tech-network-core,
  .tech-network-node,
  .universe-orbit,
  .universe-core,
  .universe-product,
  .universe-beam,
  .ecosystem-visual::before,
  .ecosystem-visual::after,
  .ecosystem-energy,
  .ecosystem-core,
  .ecosystem-node,
  .ecosystem-link,
  .ecosystem-live b { animation: none !important; }
  .partner-network::after,
  .partner-network-lines path,
  .partner-orbit,
  .partner-hub,
  .partner-node,
  .partner-network-status i { animation: none !important; }
  .tech-spectrum { mask-image: none; overflow-x: auto; scrollbar-width: thin; }
  .tech-spectrum-track { width: max-content; }
  .tech-spectrum-track [aria-hidden="true"] { display: none; }
  .motion-reveal { opacity: 1 !important; transform: none !important; filter: none !important; transition: none !important; }
}

@media (max-height: 560px) and (orientation: landscape) {
  .navbar-nafa .navbar-collapse { max-height: calc(100vh - 82px); }
  .hero-section, .hero-modern { min-height: auto; padding-block: 3rem !important; }
}

/* Innovation — six fields connected by one living visual language. */
.page-innovation .innovation-grid { position: relative; }
.page-innovation .innovation-card {
  position: relative;
  min-height: 260px;
  overflow: hidden;
  isolation: isolate;
  border-color: color-mix(in srgb,var(--field-color) 25%,rgba(255,255,255,.1));
  background:
    radial-gradient(circle at 88% 12%,color-mix(in srgb,var(--field-color) 14%,transparent),transparent 34%),
    linear-gradient(145deg,rgba(18,33,50,.98),rgba(9,21,34,.98));
}
.page-innovation .innovation-card::after {
  content: '';
  position: absolute;
  z-index: -1;
  width: 180px;
  aspect-ratio: 1;
  right: -92px;
  bottom: -105px;
  border: 1px solid color-mix(in srgb,var(--field-color) 28%,transparent);
  border-radius: 50%;
  box-shadow: 0 0 0 28px color-mix(in srgb,var(--field-color) 4%,transparent),0 0 60px color-mix(in srgb,var(--field-color) 10%,transparent);
  transition: transform .5s ease,opacity .5s ease;
}
.page-innovation .innovation-card:hover { transform: translateY(-7px); border-color: color-mix(in srgb,var(--field-color) 55%,transparent); box-shadow: 0 24px 55px rgba(0,0,0,.28),0 0 28px color-mix(in srgb,var(--field-color) 9%,transparent); }
.page-innovation .innovation-card:hover::after { transform: scale(1.18); opacity: .9; }
.page-innovation .innovation-card .card-body { display: flex; flex-direction: column; padding: 1.7rem; }
.innovation-card-top { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.35rem; }
.innovation-icon { display: grid; place-items: center; width: 52px; height: 52px; flex: 0 0 auto; border: 1px solid color-mix(in srgb,var(--field-color) 42%,transparent); border-radius: 15px; color: var(--field-color); background: color-mix(in srgb,var(--field-color) 11%,transparent); box-shadow: inset 0 0 20px color-mix(in srgb,var(--field-color) 5%,transparent); }
.innovation-icon i { font-size: 1.45rem; }
.innovation-index { color: color-mix(in srgb,var(--field-color) 88%,white); font-size: .62rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.page-innovation .innovation-card h5 { margin-bottom: .75rem; color: #f5f9ff; font-size: 1.28rem; font-weight: 800; }
.page-innovation .innovation-card p { flex: 1; margin-bottom: 1.15rem; line-height: 1.7; }
.page-innovation .innovation-card small { color: #88a9c7; font-size: .68rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.innovation-signal { position: relative; height: 1px; margin-bottom: .85rem; overflow: hidden; background: rgba(118,168,205,.15); }
.innovation-signal span { position: absolute; inset-block: 0; left: -32%; width: 32%; background: linear-gradient(90deg,transparent,var(--field-color),transparent); box-shadow: 0 0 12px var(--field-color); animation: innovationSignal 3.4s ease-in-out infinite; }
.innovation-grid > div:nth-child(2n) .innovation-signal span { animation-delay: -1.7s; }
.innovation-grid > div:nth-child(3n) .innovation-signal span { animation-delay: -2.5s; }
@keyframes innovationSignal { 0% { left: -32%; } 65%,100% { left: 100%; } }

@media (max-width: 767.98px) {
  .page-innovation .innovation-card { min-height: 0; }
  .page-innovation .innovation-card .card-body { padding: 1.35rem; }
  .innovation-card-top { margin-bottom: 1rem; }
  .innovation-icon { width: 46px; height: 46px; border-radius: 13px; }
}

@media (prefers-reduced-motion: reduce) {
  .innovation-signal span { animation: none !important; left: 34%; }
  .page-innovation .innovation-card:hover { transform: none; }
}

/* Enterprise pages — richer cards while keeping each page's own story. */
.page-institutions .feature-panel,
.page-investisseurs .feature-panel,
.page-careers .feature-panel {
  position: relative;
  overflow: hidden;
  background: radial-gradient(circle at 92% 10%,rgba(42,174,255,.095),transparent 35%),linear-gradient(145deg,rgba(15,30,47,.96),rgba(8,20,33,.96));
  transition: transform .35s ease,border-color .35s ease,box-shadow .35s ease;
}
.page-institutions .feature-panel::after,
.page-investisseurs .feature-panel::after,
.page-careers .feature-panel::after {
  content: '';
  position: absolute;
  z-index: 0;
  right: -72px;
  bottom: -92px;
  width: 155px;
  aspect-ratio: 1;
  border: 1px solid rgba(56,198,255,.14);
  border-radius: 50%;
  box-shadow: 0 0 0 24px rgba(56,198,255,.025);
  transition: transform .45s ease;
}
.page-institutions .feature-panel:hover::after,
.page-investisseurs .feature-panel:hover::after,
.page-careers .feature-panel:hover::after { transform: scale(1.2); }
.page-institutions .feature-panel > .bi,
.page-investisseurs .feature-panel > .bi,
.page-careers .feature-panel > .bi {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border: 1px solid rgba(51,196,255,.3);
  border-radius: 14px;
  background: rgba(23,137,214,.1);
  box-shadow: inset 0 0 18px rgba(32,175,255,.045),0 0 20px rgba(16,142,232,.05);
}
.page-institutions .feature-panel h3,
.page-investisseurs .feature-panel h3,
.page-careers .feature-panel h3 { margin-top: 1.25rem !important; }

/* News visuals use the brand system instead of decorative emojis. */
.page-news .news-card { overflow: hidden; }
.page-news .news-image {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 170px;
  overflow: hidden;
  color: #eaf8ff;
  background: radial-gradient(circle at 50% 45%,rgba(32,166,255,.28),transparent 28%),linear-gradient(145deg,#153766,#0a2038);
}
.page-news .news-image::before,
.page-news .news-image::after {
  content: '';
  position: absolute;
  width: 190px;
  aspect-ratio: 1;
  border: 1px solid rgba(75,200,255,.22);
  border-radius: 50%;
  animation: newsOrbit 9s linear infinite;
}
.page-news .news-image::after { width: 125px; border-style: dashed; animation-direction: reverse; animation-duration: 6s; }
.page-news .news-image > i { position: relative; z-index: 2; font-size: 2.65rem; filter: drop-shadow(0 0 16px rgba(55,198,255,.55)); transition: transform .4s ease; }
.page-news .news-image > span { position: absolute; z-index: 2; right: 1rem; bottom: .8rem; color: #7edfff; font-size: .62rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.page-news .news-card:hover .news-image > i { transform: translateY(-5px) scale(1.1); }
.page-news .news-image-market { background: radial-gradient(circle at 50% 45%,rgba(139,103,255,.3),transparent 28%),linear-gradient(145deg,#252052,#10182f); }
.page-news .news-image-vision { background: radial-gradient(circle at 50% 45%,rgba(53,214,160,.25),transparent 28%),linear-gradient(145deg,#123d47,#092033); }
@keyframes newsOrbit { to { transform: rotate(360deg); } }

@media (max-width: 767.98px) {
  .page-institutions .feature-panel,
  .page-investisseurs .feature-panel,
  .page-careers .feature-panel { padding: 1.35rem; }
  .page-news .news-image { min-height: 140px; }
}

@media (prefers-reduced-motion: reduce) {
  .page-news .news-image::before,
  .page-news .news-image::after { animation: none !important; }
  .page-institutions .feature-panel:hover,
  .page-investisseurs .feature-panel:hover,
  .page-careers .feature-panel:hover { transform: none; }
}
