/* =========================================================
ORFA HERO
========================================================= */
#orfaHeroSlider {
position: relative;
width: 100%;
min-height: 830px;
overflow: hidden;
background: #06162D;
color: #FFFFFF;
isolation: isolate;
}
#orfaHeroSlider .orfa-hero-slides {
position: relative;
min-height: 720px;
}
/* =========================================================
SLIDE
========================================================= */
#orfaHeroSlider .orfa-hero-slide {
position: absolute;
inset: 0;
min-height: 720px;
overflow: hidden;
background-color: #06162D;
background-image: var(--orfa-hero-image);
background-repeat: no-repeat;
background-position: center center;
background-size: cover;
opacity: 0;
visibility: hidden;
transform: scale(1.018);
transition:
opacity .75s ease,
visibility .75s ease,
transform 1.25s cubic-bezier(.22,1,.36,1);
}
#orfaHeroSlider .orfa-hero-slide.is-active {
opacity: 1;
visibility: visible;
transform: scale(1);
}
/* =========================================================
HERO OVERLAY
========================================================= */
#orfaHeroSlider .orfa-hero-overlay {
position: absolute;
inset: 0;
z-index: 1;
background:
linear-gradient(
90deg,
rgba(4,16,37,.72) 0%,
rgba(4,16,37,.58) 28%,
rgba(4,16,37,.28) 48%,
rgba(4,16,37,.08) 68%,
rgba(4,16,37,0) 100%
);
linear-gradient(
180deg,
rgba(4,16,37,.03) 45%,
rgba(4,16,37,.25) 100%
);
pointer-events: none;
}
/* =========================================================
CONTENT CONTAINER
========================================================= */
#orfaHeroSlider .orfa-hero-inner {
position: relative;
z-index: 3;
width: min(
1200px,
calc(100% - 80px)
);
min-height: 720px;
margin: 0 auto;
display: flex;
align-items: center;
padding-top: 45px;
padding-bottom: 330px;
}
/* =========================================================
COPY
========================================================= */
#orfaHeroSlider .orfa-hero-copy {
width: min(
620px,
52vw
);
}
#orfaHeroSlider .orfa-hero-eyebrow {
margin: 0 0 18px;
color: #CFE9FF;
font-size: 12px;
line-height: 1.2;
font-weight: 700;
letter-spacing: .14em;
text-transform: uppercase;
}
#orfaHeroSlider .orfa-hero-copy h1 {
max-width: 640px;
margin: 0 0 23px;
color: #FFFFFF;
font-size: clamp(
44px,
4.3vw,
65px
);
line-height: 1.04;
font-weight: 650;
letter-spacing: -.035em;
}
#orfaHeroSlider .orfa-hero-copy h1 span {
color: #FFFFFF;
}
#orfaHeroSlider .orfa-hero-copy p {
max-width: 600px;
margin: 0 0 31px;
color: rgba(235,244,255,.82);
font-size: 16px;
line-height: 1.65;
font-weight: 400;
}
/* =========================================================
CTA BUTTONS
========================================================= */
#orfaHeroSlider .orfa-hero-actions {
display: flex;
align-items: center;
gap: 12px;
flex-wrap: wrap;
}
#orfaHeroSlider .orfa-hero-btn {
min-height: 45px;
display: inline-flex;
align-items: center;
justify-content: center;
padding: 0 19px;
border-radius: 7px;
font-size: 13px;
line-height: 1;
font-weight: 650;
text-decoration: none !important;
transition:
background-color .28s ease,
border-color .28s ease,
color .28s ease,
transform .28s cubic-bezier(.22,1,.36,1),
box-shadow .28s ease;
}
/* Primary */
#orfaHeroSlider .orfa-hero-btn-primary {
background: #FFFFFF;
border: 1px solid #FFFFFF;
color: #0D1F3C !important;
}
#orfaHeroSlider .orfa-hero-btn-primary:hover {
background: #EAF5FF;
border-color: #EAF5FF;
color: #0D1F3C !important;
transform: translateY(-2px);
}
/* Secondary */
#orfaHeroSlider .orfa-hero-btn-secondary {
background: rgba(255,255,255,.07);
border: 1px solid rgba(255,255,255,.32);
color: #FFFFFF !important;
-webkit-backdrop-filter: blur(8px);
backdrop-filter: blur(8px);
}
#orfaHeroSlider .orfa-hero-btn-secondary:hover {
background: rgba(255,255,255,.14);
border-color: rgba(255,255,255,.56);
color: #FFFFFF !important;
transform: translateY(-2px);
}
/* =========================================================
ARROWS
========================================================= */
#orfaHeroSlider .orfa-hero-arrow {
position: absolute;
z-index: 20;
top: 43%;
width: 44px;
height: 44px;
padding: 0;
display: flex;
align-items: center;
justify-content: center;
border:
1px solid
rgba(255,255,255,.23);
border-radius: 50%;
background:
rgba(4,16,37,.20);
color: #FFFFFF;
font-family: Arial, sans-serif;
font-size: 28px;
font-weight: 300;
line-height: 1;
cursor: pointer;
-webkit-backdrop-filter:
blur(10px);
backdrop-filter:
blur(10px);
transition:
background-color .25s ease,
border-color .25s ease;
}
#orfaHeroSlider .orfa-hero-arrow:hover {
background: #1675E8;
border-color: #1675E8;
}
#orfaHeroSlider .orfa-hero-prev {
left: 22px;
}
#orfaHeroSlider .orfa-hero-next {
right: 22px;
}
/* =========================================================
FOUR NAVIGATION CARDS
========================================================= */
#orfaHeroSlider .orfa-hero-nav {
position: absolute;
z-index: 15;
left: 50%;
bottom: 6px;
transform:
translateX(-50%);
width: min(
1200px,
calc(100% - 80px)
);
display: grid;
grid-template-columns:
repeat(
4,
minmax(0,1fr)
);
gap: 18px;
align-items: stretch;
}
/* =========================================================
NAV CARD
========================================================= */
#orfaHeroSlider .orfa-hero-tab {
position: relative;
min-width: 0;
padding: 0;
overflow: hidden;
display: flex;
flex-direction: column;
border: 0;
border-radius: 14px;
background: #FFFFFF;
color: #0D1F3C;
text-align: left;
cursor: pointer;
transform:
translateY(0);
transition:
transform .35s
cubic-bezier(.22,1,.36,1),
box-shadow .35s ease;
}
#orfaHeroSlider .orfa-hero-tab:hover {
transform:
translateY(-5px);
}
/* =========================================================
CARD DARK HEADER
========================================================= */
#orfaHeroSlider .orfa-tab-head {
position: relative;
min-height: 50px;
padding:
10px
17px
11px;
display: flex;
flex-direction: column;
justify-content: center;
background:
linear-gradient(
135deg,
rgba(6,22,45,.98),
rgba(16,56,106,.95)
);
color: #FFFFFF;
}
#orfaHeroSlider .orfa-tab-head span {
display: block;
margin-bottom: 2px;
color: #79C1FF;
font-size: 9px;
line-height: 1;
font-weight: 800;
letter-spacing: .10em;
}
#orfaHeroSlider .orfa-tab-head b {
display: block;
margin: 0;
color:
rgba(255,255,255,.80);
font-size: 12px;
line-height: 1.2;
font-weight: 650;
}
/* =========================================================
CARD WHITE BODY
========================================================= */
#orfaHeroSlider .orfa-tab-body {
position: relative;
min-height: 100px;
padding:
17px
20px
19px;
display: flex;
flex-direction: column;
background:
linear-gradient(
145deg,
#FFFFFF 0%,
#FFFFFF 68%,
#F4F8FD 100%
);
}
#orfaHeroSlider .orfa-tab-body strong {
display: block;
margin: 0 0 9px;
color: #1675E8;
font-size: 20px;
line-height: 1.18;
font-weight: 750;
letter-spacing: -.025em;
}
#orfaHeroSlider .orfa-tab-body small {
display: block;
max-width: 220px;
margin: 0;
color: #61708A;
font-size: 11px;
line-height: 1.5;
font-weight: 600;
}
/* =========================================================
ACTIVE CARD
========================================================= */
#orfaHeroSlider
.orfa-hero-tab.is-active {
transform:
translateY(-5px);
}
#orfaHeroSlider
.orfa-hero-tab.is-active
.orfa-tab-head {
background:
linear-gradient(
135deg,
#071C38 0%,
#124D94 100%
);
}
#orfaHeroSlider
.orfa-hero-tab.is-active
.orfa-tab-head b {
color: #FFFFFF;
}
/* =========================================================
CARD SUBTLE BLUE GLOW
========================================================= */
#orfaHeroSlider .orfa-hero-tab::after {
content: "";
position: absolute;
right: -55px;
bottom: -65px;
width: 170px;
height: 170px;
border-radius: 50%;
background:
radial-gradient(
circle,
rgba(22,117,232,.11),
transparent 68%
);
opacity: 0;
pointer-events: none;
transition:
opacity .35s ease;
}
#orfaHeroSlider
.orfa-hero-tab:hover::after,
#orfaHeroSlider
.orfa-hero-tab.is-active::after {
opacity: 1;
}
/* =========================================================
PROGRESS LINE
========================================================= */
#orfaHeroSlider
.orfa-hero-tab > i {
position: absolute;
z-index: 5;
left: 0;
top: 0;
width: 0;
height: 3px;
background:
linear-gradient(
90deg,
#1675E8,
#79C1FF
);
pointer-events: none;
}
#orfaHeroSlider
.orfa-hero-tab.is-active > i {
animation:
orfaHeroProgress
9s linear;
}
@keyframes orfaHeroProgress {
from {
width: 0;
}
to {
width: 100%;
}
}
/* =========================================================
LARGE LAPTOP
========================================================= */
@media
(max-width: 1280px) {
#orfaHeroSlider
.orfa-hero-inner {
width:
calc(100% - 90px);
}
#orfaHeroSlider
.orfa-hero-nav {
width:
calc(100% - 90px);
gap: 14px;
}
#orfaHeroSlider
.orfa-tab-body strong {
font-size: 18px;
}
}
/* =========================================================
SMALL LAPTOP
========================================================= */
@media
(max-width: 1100px) {
#orfaHeroSlider
.orfa-hero-nav {
width:
calc(100% - 55px);
gap: 10px;
}
#orfaHeroSlider
.orfa-tab-head {
padding:
9px
13px;
}
#orfaHeroSlider
.orfa-tab-body {
min-height: 106px;
padding:
17px
14px
19px;
}
#orfaHeroSlider
.orfa-tab-body strong {
font-size: 16px;
}
#orfaHeroSlider
.orfa-tab-body small {
font-size: 10px;
}
}
/* =========================================================
TABLET
========================================================= */
@media
(max-width: 989px) {
#orfaHeroSlider,
#orfaHeroSlider
.orfa-hero-slides,
#orfaHeroSlider
.orfa-hero-slide {
min-height: 700px;
}
#orfaHeroSlider
.orfa-hero-slide {
background-position:
60% center;
}
#orfaHeroSlider
.orfa-hero-overlay {
background:
linear-gradient(
90deg,
rgba(4,16,37,.96)
0%,
rgba(4,16,37,.84)
48%,
rgba(4,16,37,.32)
100%
);
}
#orfaHeroSlider
.orfa-hero-inner {
width:
calc(100% - 55px);
min-height: 700px;
padding-bottom:
185px;
}
#orfaHeroSlider
.orfa-hero-copy {
width: 67%;
}
#orfaHeroSlider
.orfa-hero-copy h1 {
font-size:
clamp(
38px,
5vw,
52px
);
}
#orfaHeroSlider
.orfa-hero-arrow {
display: none;
}
#orfaHeroSlider
.orfa-hero-nav {
width:
calc(100% - 30px);
gap: 7px;
bottom: 15px;
}
#orfaHeroSlider
.orfa-tab-head {
min-height: 49px;
padding:
8px
10px;
}
#orfaHeroSlider
.orfa-tab-head b {
font-size: 10px;
}
#orfaHeroSlider
.orfa-tab-body {
min-height: 89px;
padding:
13px
10px;
}
#orfaHeroSlider
.orfa-tab-body strong {
font-size: 14px;
}
#orfaHeroSlider
.orfa-tab-body small {
font-size: 9px;
line-height: 1.4;
}
}
/* =========================================================
MOBILE — SHOW ONLY ACTIVE HERO CARD
========================================================= */
@media (max-width: 767px) {
/* Give the single card enough room */
#orfaHeroSlider .orfa-hero-inner {
padding-bottom: 165px;
}
/* One-column navigation */
#orfaHeroSlider .orfa-hero-nav {
width: calc(100% - 36px);
max-width: 390px;
bottom: 16px;
display: block;
}
/* Hide all navigation cards */
#orfaHeroSlider .orfa-hero-tab {
display: none;
width: 100%;
border-radius: 10px;
transform: none !important;
}
/* Show only the currently active slide card */
#orfaHeroSlider .orfa-hero-tab.is-active {
display: flex;
}
/* Dark card header */
#orfaHeroSlider .orfa-tab-head {
min-height: 48px;
padding: 9px 14px;
}
#orfaHeroSlider .orfa-tab-head span {
font-size: 8px;
}
#orfaHeroSlider .orfa-tab-head b {
font-size: 11px;
line-height: 1.2;
}
/* Bring back the white card content on mobile */
#orfaHeroSlider .orfa-tab-body {
display: flex;
min-height: 78px;
padding: 14px 16px 16px;
}
#orfaHeroSlider .orfa-tab-body strong {
margin-bottom: 5px;
font-size: 17px;
line-height: 1.2;
}
#orfaHeroSlider .orfa-tab-body small {
font-size: 10px;
line-height: 1.4;
}
}
/* =========================================================
REDUCED MOTION
========================================================= */
@media
(prefers-reduced-motion: reduce) {
#orfaHeroSlider
.orfa-hero-slide,
#orfaHeroSlider
.orfa-hero-tab,
#orfaHeroSlider
.orfa-hero-btn {
transition: none !important;
}
#orfaHeroSlider
.orfa-hero-tab.is-active > i {
animation: none !important;
width: 100%;
}
}
/* =========================================================
DESKTOP — WHITE DOCK UNDER HERO CARDS
Creates the index.html floating-card feeling
========================================================= */
@media (min-width: 990px) {
/* White transition area at bottom of hero */
#orfaHeroSlider::after {
content: "";
position: absolute;
left: 0;
right: 0;
bottom: 0;
height: 118px;
background: #F4F4F4;
z-index: 7;
pointer-events: none;
}
/* Keep navigation cards above white dock */
#orfaHeroSlider .orfa-hero-nav {
z-index: 15;
bottom: 10px;
}
/* Reduce how much content reserves for cards */
#orfaHeroSlider .orfa-hero-inner {
padding-bottom: 175px;
}
}
document.addEventListener('DOMContentLoaded', function () {
const hero = document.getElementById('orfaHeroSlider');
if (!hero) { return; }
const slides = Array.from( hero.querySelectorAll('.orfa-hero-slide') );
const tabs = Array.from( hero.querySelectorAll('.orfa-hero-tab') );
const previousButton = hero.querySelector('.orfa-hero-prev'); const nextButton = hero.querySelector('.orfa-hero-next');
const slideDuration = 9000;
let currentSlide = 0; let autoTimer = null;
/* ===================================================== Restart progress animation ===================================================== */
function restartProgress(tab) {
if (!tab) { return; }
const progress = tab.querySelector('i');
if (!progress) { return; }
progress.style.animation = 'none';
/* Force browser reflow */ void progress.offsetWidth;
progress.style.animation = ''; }
/* ===================================================== Stop current timer ===================================================== */
function clearAutoPlay() {
if (autoTimer !== null) {
window.clearTimeout(autoTimer);
autoTimer = null; } }
/* ===================================================== Start next automatic slide ===================================================== */
function scheduleAutoPlay() {
clearAutoPlay();
autoTimer = window.setTimeout(function () {
showSlide(currentSlide + 1);
}, slideDuration); }
/* ===================================================== Display slide ===================================================== */
function showSlide(requestedIndex) {
const totalSlides = slides.length;
currentSlide = (requestedIndex + totalSlides) % totalSlides;
/* Slides */
slides.forEach(function (slide, index) {
const active = index === currentSlide;
slide.classList.toggle( 'is-active', active );
slide.setAttribute( 'aria-hidden', active ? 'false' : 'true' );
});
/* Navigation cards */
tabs.forEach(function (tab, index) {
const active = index === currentSlide;
tab.classList.toggle( 'is-active', active );
tab.setAttribute( 'aria-selected', active ? 'true' : 'false' );
if (active) { restartProgress(tab); }
});
/* Restart 9 second timer */
scheduleAutoPlay(); }
/* ===================================================== Navigation card click ===================================================== */
tabs.forEach(function (tab) {
tab.addEventListener('click', function () {
const destination = Number( tab.dataset.go );
if (Number.isNaN(destination)) { return; }
showSlide(destination); });
});
/* ===================================================== Previous ===================================================== */
if (previousButton) {
previousButton.addEventListener( 'click', function () {
showSlide( currentSlide - 1 );
} );
}
/* ===================================================== Next ===================================================== */
if (nextButton) {
nextButton.addEventListener( 'click', function () {
showSlide( currentSlide + 1 );
} );
}
/* ===================================================== Keyboard navigation ===================================================== */
hero.addEventListener( 'keydown', function (event) {
if (event.key === 'ArrowLeft') {
event.preventDefault();
showSlide( currentSlide - 1 ); }
if (event.key === 'ArrowRight') {
event.preventDefault();
showSlide( currentSlide + 1 ); }
} );
/* ===================================================== Browser tab visibility
Pause only when visitor actually leaves the page. Hovering the hero does NOT pause anything. ===================================================== */
document.addEventListener( 'visibilitychange', function () {
if (document.hidden) {
clearAutoPlay();
} else {
restartProgress( tabs[currentSlide] );
scheduleAutoPlay();
}
} );
/* ===================================================== Initialize ===================================================== */
showSlide(0);
});
Broadband Products for Every Access Scenario




Controlled from Design to Shipment
Explore Our Manufacturing
Hardware Design Review
Architecture, schematic, PCB, BOM and testability.
Material Control by WMS
Approved sources, lot tracking, FIFO and issue control.
Production Control by MES
Process routing, test limits, station interlock and records.
ONU Functional Verification
Traffic, BOB, Wi-Fi calibration, information writing and final inspection.
/* =====================================================
ORFA ENGINEERING CONTROL SYSTEM
===================================================== */
.orfa-engineering-system {
position: relative;
isolation: isolate;
overflow: hidden;
padding: 30px 30px 30px 26px;
border: 1px solid rgba(105, 145, 255, 0.55) !important;
border-radius: 24px;
background:
radial-gradient(
circle at 85% 20%,
rgba(39, 124, 255, 0.18),
transparent 36%
),
radial-gradient(
circle at 15% 100%,
rgba(52, 196, 255, 0.10),
transparent 34%
),
linear-gradient(
145deg,
#07182d 0%,
#0a2039 55%,
#08172a 100%
);
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.06),
/* close blue-violet edge */
0 0 0 1px rgba(105, 126, 255, 0.08),
/* near glow */
0 0 22px rgba(92, 102, 255, 0.18),
/* wide ambient glow */
0 0 55px rgba(60, 90, 220, 0.12);
}
/* =====================================================
LUMINOUS EDGE
===================================================== */
.orfa-engineering-system::before {
content: "";
position: absolute;
inset: 0;
border-radius: inherit;
border: 1px solid rgba(129, 142, 255, 0.52);
box-shadow:
inset 0 1px 0 rgba(180, 205, 255, 0.10),
inset 0 0 18px rgba(94, 120, 255, 0.035);
pointer-events: none;
z-index: 10;
}
/* =====================================================
MICRO TECH GRID
===================================================== */
.orfa-engineering-grid {
position: absolute;
inset: 0;
background-image:
linear-gradient(
rgba(109,180,255,0.035) 1px,
transparent 1px
),
linear-gradient(
90deg,
rgba(109,180,255,0.035) 1px,
transparent 1px
);
background-size: 28px 28px;
mask-image:
linear-gradient(
90deg,
rgba(0,0,0,.7),
rgba(0,0,0,.2) 65%,
transparent
);
pointer-events: none;
z-index: -1;
}
/* =====================================================
LARGE AMBIENT LIGHT
===================================================== */
.orfa-engineering-light {
position: absolute;
width: 420px;
height: 420px;
right: -180px;
top: -180px;
border-radius: 50%;
background:
radial-gradient(
circle,
rgba(60,145,255,0.22),
rgba(60,145,255,0.06) 45%,
transparent 72%
);
filter: blur(8px);
animation:
orfaAmbientLight
8s
ease-in-out
infinite alternate;
pointer-events: none;
}
@keyframes orfaAmbientLight {
from {
transform: translate3d(0,0,0) scale(1);
opacity: .7;
}
to {
transform: translate3d(-45px,45px,0) scale(1.12);
opacity: 1;
}
}
/* =====================================================
PROCESS LIST
===================================================== */
.orfa-engineering-list {
position: relative;
z-index: 2;
}
/* =====================================================
EACH PROCESS ROW
===================================================== */
.orfa-engineering-step {
position: relative;
display: grid;
grid-template-columns:
70px
1fr
24px;
gap: 18px;
align-items: center;
min-height: 112px;
padding:
17px
15px
17px
0;
border-bottom:
1px solid rgba(130,180,230,0.10);
transition:
background 0.35s ease,
border-color 0.35s ease,
transform 0.35s cubic-bezier(.22,1,.36,1);
}
.orfa-engineering-step:last-child {
border-bottom: none;
}
/* subtle horizontal data line */
.orfa-engineering-step::before {
content: "";
position: absolute;
left: 71px;
right: 20px;
bottom: -1px;
height: 1px;
background:
linear-gradient(
90deg,
rgba(74,160,255,.28),
rgba(74,160,255,.04) 45%,
transparent 85%
);
transform: scaleX(.15);
transform-origin: left;
transition:
transform .5s cubic-bezier(.22,1,.36,1);
}
.orfa-engineering-step:hover::before {
transform: scaleX(1);
}
/* =====================================================
HOVER PANEL
===================================================== */
.orfa-engineering-step::after {
content: "";
position: absolute;
inset: 8px 0 8px 55px;
border-radius: 14px;
background:
linear-gradient(
90deg,
rgba(49,134,240,0.11),
rgba(35,102,190,0.05) 55%,
transparent
);
border:
1px solid rgba(83,165,255,0);
opacity: 0;
transition:
opacity .35s ease,
border-color .35s ease;
z-index: -1;
}
.orfa-engineering-step:hover::after {
opacity: 1;
border-color:
rgba(83,165,255,0.10);
}
/* =====================================================
NUMBER NODE
===================================================== */
.orfa-step-index {
position: relative;
width: 52px;
height: 52px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 14px;
background:
linear-gradient(
145deg,
rgba(29,62,100,.88),
rgba(15,38,67,.94)
);
border:
1px solid rgba(110,184,255,.20);
box-shadow:
inset 0 1px 0 rgba(255,255,255,.05),
0 10px 25px rgba(0,0,0,.14);
color: #79c1ff;
font-weight: 800;
transition:
transform .35s cubic-bezier(.22,1,.36,1),
background .35s ease,
border-color .35s ease,
box-shadow .35s ease,
color .35s ease;
}
.orfa-step-index span {
position: relative;
z-index: 2;
}
/* glowing connector dot */
.orfa-step-index i {
position: absolute;
width: 6px;
height: 6px;
right: -12px;
top: 50%;
transform: translateY(-50%);
border-radius: 50%;
background: #58b5ff;
box-shadow:
0 0 0 4px rgba(88,181,255,.08),
0 0 12px rgba(88,181,255,.85);
}
/* =====================================================
VERTICAL OPTICAL RAIL
===================================================== */
.orfa-engineering-rail {
position: absolute;
left: 51px;
top: 57px;
bottom: 57px;
width: 2px;
z-index: 1;
}
.orfa-rail-line {
position: absolute;
inset: 0;
background:
linear-gradient(
to bottom,
transparent,
rgba(75,164,255,.30) 12%,
rgba(75,164,255,.34) 88%,
transparent
);
}
/* moving signal */
.orfa-rail-signal {
position: absolute;
left: -1px;
top: 0;
width: 4px;
height: 50px;
border-radius: 999px;
background:
linear-gradient(
to bottom,
transparent,
#62bcff,
transparent
);
box-shadow:
0 0 16px rgba(80,174,255,.8);
animation:
orfaSignal
4.6s
cubic-bezier(.4,0,.2,1)
infinite;
}
@keyframes orfaSignal {
0% {
top: -5%;
opacity: 0;
}
10% {
opacity: 1;
}
85% {
opacity: 1;
}
100% {
top: 95%;
opacity: 0;
}
}
/* =====================================================
TEXT
===================================================== */
.orfa-step-meta {
margin-bottom: 5px;
color: #5db5ff;
font-size: 10px;
line-height: 1;
font-weight: 800;
letter-spacing: .15em;
}
.orfa-step-body h3 {
margin:
0
0
6px
0;
color: #ffffff;
font-size: 17px;
font-weight: 700;
line-height: 1.32;
}
.orfa-step-body p {
margin: 0;
color:
rgba(210,227,244,.64);
font-size: 13px;
line-height: 1.55;
}
/* =====================================================
RIGHT STATUS INDICATOR
===================================================== */
.orfa-step-status {
display: flex;
justify-content: flex-end;
}
.orfa-step-status span {
width: 7px;
height: 7px;
border-radius: 50%;
background:
rgba(91,181,255,.32);
box-shadow:
0 0 0 4px rgba(91,181,255,.035);
transition:
background .3s ease,
box-shadow .3s ease,
transform .3s ease;
}
/* =====================================================
HOVER INTERACTION
===================================================== */
.orfa-engineering-step:hover {
transform:
translateX(5px);
}
.orfa-engineering-step:hover
.orfa-step-index {
color: #ffffff;
background:
linear-gradient(
145deg,
#2888f4,
#1765ca
);
border-color:
rgba(113,199,255,.55);
transform:
scale(1.06);
box-shadow:
0 10px 25px rgba(22,101,202,.28),
0 0 0 6px rgba(48,139,245,.06),
0 0 30px rgba(51,148,255,.12);
}
.orfa-engineering-step:hover
.orfa-step-status span {
background: #65c2ff;
transform: scale(1.25);
box-shadow:
0 0 0 5px rgba(91,181,255,.08),
0 0 15px rgba(91,181,255,.8);
}
/* =====================================================
LIGHT SWEEP ON HOVER
===================================================== */
.orfa-step-body {
position: relative;
overflow: hidden;
}
.orfa-step-body::after {
content: "";
position: absolute;
top: -20%;
left: -60%;
width: 35%;
height: 140%;
background:
linear-gradient(
110deg,
transparent,
rgba(121,193,255,.08),
transparent
);
transform:
skewX(-15deg);
pointer-events: none;
}
.orfa-engineering-step:hover
.orfa-step-body::after {
animation:
orfaRowSweep
.85s
ease
forwards;
}
@keyframes orfaRowSweep {
from {
left: -60%;
}
to {
left: 130%;
}
}
/* =====================================================
MOBILE
===================================================== */
@media (max-width: 767px) {
.orfa-engineering-system {
padding:
22px
18px;
}
.orfa-engineering-step {
grid-template-columns:
50px
1fr;
gap: 14px;
padding:
18px
0;
min-height: auto;
}
.orfa-step-index {
width: 44px;
height: 44px;
}
.orfa-engineering-rail {
left: 40px;
top: 45px;
bottom: 45px;
}
.orfa-step-status {
display: none;
}
.orfa-engineering-step::after {
left: 44px;
}
}
Featured Products

Compact XGS-PON OLT
More Than Hardware Supply
OMCI Compatibility
ZTE
FiberHome
Hardware Quality
Thermal
Reliability
Traceable Production
MES
SN Traceability
TR-369 / USP
Cloud ACS
Telemetry
What’s new in Orfa

Understanding LAN and WAN Ports in Modern Network Devices
Network devices are the connection point between internet access, local equipment, and the users who depend on stable communication every day.

Reliable Business Connectivity Starts with the Right Network Foundation
In today’s business environment, a stable internet connection is no longer just a basic utility. It is part of daily operations, communication,

Powering Smarter Cities Through Reliable Network Infrastructure
Modern cities depend on fast, stable, and scalable communication networks. From homes and offices to industrial parks, public services,
Get quick answers to common product queries
What type of network projects are these products suitable for?
Our PON access products are designed for FTTH, FTTB, campus networks, ISP access networks, hotel networks, enterprise broadband, and private optical network deployments. They are suitable for projects that require stable bandwidth, centralized management, and scalable user access.
Do your XGS-PON OLT products support high-speed uplinks?
Yes. Our compact XGS-PON OLT solutions are designed with flexible high-speed uplink options, including 10GE uplinks depending on the model configuration. This helps operators and system integrators build faster and more reliable access networks.
Can the products work with different ONU or ONT devices?
Our products are designed for strong compatibility, but actual compatibility may depend on OMCI adaptation, firmware version, and the ONU/ONT brand. We can support testing and private OMCI adaptation for project-based deployments.
Do you support OEM or customized product requirements?
Yes. We support OEM cooperation, hardware configuration adjustment, firmware customization, logo customization, packaging customization, and project-based feature adaptation depending on order quantity and technical requirements.
Can you provide technical support before deployment?
Yes. We can provide product selection guidance, network topology suggestions, configuration support, firmware information, and basic deployment recommendations to help customers choose the right model for their project.
Are these products suitable for ISP or operator-level deployment?
Yes. Our PON access solutions can be used for small and medium ISP deployments, community broadband projects, enterprise access networks, and private operator networks. For large-scale deployment, we recommend confirming port density, uplink capacity, ONU compatibility, and management requirements before ordering.



