VnFactory – Bất Động Sản Công Nghiệp Hàng Đầu Việt Nam
[
{
"@context": "https://schema.org",
"@type": "RealEstateAgent",
"name": "VnFactory",
"url": "https://vnfactory.vn/",
"logo": "https://vnfactory.vn/wp-content/uploads/2026/07/Logo-Vnfactory-1.png",
"image": "https://vnfactory.vn/wp-content/uploads/2026/06/2.png",
"description": "VnFactory là đơn vị hàng đầu cung cấp dịch vụ tư vấn, cho thuê nhà xưởng, đất công nghiệp và văn phòng cho doanh nghiệp FDI tại Việt Nam.",
"telephone": "+84866316668",
"priceRange": "$$",
"address": {
"@type": "PostalAddress",
"addressCountry": "VN",
"addressLocality": "Việt Nam"
}
},
{
"@context": "https://schema.org",
"@type": "ItemList",
"name": "Dự án Bất Động Sản Công Nghiệp Nổi Bật",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"item": {
"@type": "RealEstateListing",
"name": "Cụm công nghiệp Tân Phú 1 & Tân Phú 2 Thái Nguyên",
"url": "https://vnfactory.vn/khu-cong-nghiep/cum-cong-nghiep-tan-phu-1-tan-phu-2/",
"offers": { "@type": "Offer", "priceCurrency": "USD", "price": "120", "unitText": "SQM" }
}
},
{
"@type": "ListItem",
"position": 2,
"item": {
"@type": "RealEstateListing",
"name": "Thành phố công nghiệp KNIC Đồng Nai",
"url": "https://vnfactory.vn/khu-cong-nghiep/he-sinh-thai-thanh-pho-cong-nghiep-knic-dong-nai/",
"offers": { "@type": "Offer", "priceCurrency": "USD", "price": "193", "unitText": "SQM" }
}
},
{
"@type": "ListItem",
"position": 3,
"item": {
"@type": "RealEstateListing",
"name": "Khu công nghiệp Nam Tràng Cát Hải Phòng",
"url": "https://vnfactory.vn/khu-cong-nghiep/khu-cong-nghiep-nam-trang-cat-hai-phong/",
"offers": { "@type": "Offer", "priceCurrency": "USD", "price": "145", "unitText": "SQM" }
}
}
]
},
{
"@context": "https://schema.org",
"@type": "Service",
"serviceType": "Tư vấn đầu tư và Pháp lý Bất động sản công nghiệp",
"provider": {
"@type": "RealEstateAgent",
"name": "VnFactory"
},
"areaServed": "VN",
"description": "Hỗ trợ xin giấy phép đầu tư, môi trường, PCCC, tìm kiếm địa điểm và xây dựng nhà xưởng tại Việt Nam."
}
]
/* Ép toàn bộ các thẻ dùng font Nunito Sans */
* {
box-sizing: inherit;
font-family: 'Nunito Sans', sans-serif !important;
}
body, html {
margin: 0;
padding: 0;
box-sizing: border-box;
}
/* ============================================= */
/* FIX ALIGNMENT: CONTAINER CHUNG 1200PX */
/* ============================================= */
.vnf-container {
width: 100% !important;
max-width: 1200px !important; /* Đồng bộ chuẩn với Menu WordPress */
margin: 0 auto !important;
padding-left: 15px !important;
padding-right: 15px !important;
}
/* ============================================= */
/* 1. HERO BANNER SECTION */
/* ============================================= */
.hero-banner-section {
position: relative !important;
width: 100% !important;
min-height: 680px !important;
display: flex !important;
align-items: center !important;
padding: 140px 0 !important;
overflow: hidden !important;
}
.hero-slider-background {
position: absolute !important;
top: 0 !important;
left: 0 !important;
width: 100% !important;
height: 100% !important;
z-index: 1 !important;
}
.hero-slide-item {
position: absolute !important;
top: 0 !important;
left: 0 !important;
width: 100% !important;
height: 100% !important;
background-size: cover !important;
background-position: center !important;
background-repeat: no-repeat !important;
opacity: 0 !important;
transition: opacity 1.2s ease-in-out, transform 6s ease-in-out !important;
transform: scale(1) !important;
}
.hero-slide-item.active {
opacity: 1 !important;
transform: scale(1.04) !important;
}
.hero-slider-overlay {
position: absolute !important;
top: 0 !important;
left: 0 !important;
width: 100% !important;
height: 100% !important;
background: linear-gradient(180deg, rgba(0, 0, 0, 0.4) 0%, rgba(0, 0, 0, 0.4) 100%) !important;
z-index: 2 !important;
}
.hero-inner-container {
position: relative !important;
z-index: 3 !important;
}
.hero-content-box {
max-width: 700px !important;
text-align: left !important;
}
.hero-subtitle {
font-size: 14px !important;
font-weight: 600 !important;
color: #ffffff !important;
margin-bottom: 16px !important;
letter-spacing: 1px !important;
display: block !important;
}
.hero-main-title {
font-size: clamp(2.2rem, 5vw, 3.6rem) !important;
font-weight: 800 !important;
color: #ffffff !important;
line-height: 1.25 !important;
text-transform: uppercase !important;
margin: 0 0 15px 0 !important;
}
.hero-description {
font-size: clamp(14px, 2.5vw, 16px) !important;
color: #ffffff !important;
font-weight: 400 !important;
line-height: 1.6 !important;
margin: 0 0 40px 0 !important;
max-width: 580px !important;
}
.hero-btn-group {
display: inline-flex !important;
align-items: center !important;
gap: 6px !important;
flex-wrap: wrap !important;
background-color: rgba(255, 255, 255, 0.06) !important;
padding: 4px !important;
border-radius: 30px !important;
border: 1px solid rgba(255, 255, 255, 0.1) !important;
backdrop-filter: blur(8px) !important;
}
.hero-base-btn {
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
gap: 8px !important;
padding: 12px 24px !important;
font-size: 14px !important;
font-weight: 600 !important;
border-radius: 24px !important;
text-decoration: none !important;
transition: all 0.25s ease-in-out !important;
}
.btn-vnf-primary {
background-color: #bb254a !important;
border-color: #9e1a3b !important;
color: #ffffff !important;
}
.btn-vnf-primary:hover {
background-color: #ffffff !important;
border-color: #9e1a3b !important;
color: #0f172a !important;
transform: translateY(-1px) !important;
}
.btn-vnf-outline {
background-color: transparent !important;
color: #ffffff !important;
border: 1px solid rgba(255, 255, 255, 0.3) !important;
}
.btn-vnf-outline:hover {
background-color: #ffffff !important;
color: #0f172a !important;
border-color: #ffffff !important;
transform: translateY(-1px) !important;
}
.hero-base-btn i { font-size: 16px !important; }
/* ============================================= */
/* 2. COUNTER SECTION */
/* ============================================= */
.counter-section {
background-color: #811832;
padding: 40px 0;
}
.counter-container {
display: grid;
grid-template-columns: repeat(5, 1fr);
gap: 15px;
text-align: center;
}
.counter-item {
position: relative;
color: #ffffff;
padding: 10px;
}
.counter-item:not(:last-child)::after {
content: "";
position: absolute;
right: -10px;
top: 15%;
height: 70%;
width: 1px;
background-color: rgba(255, 255, 255, 0.4);
}
.counter-number {
font-size: clamp(28px, 3.5vw, 38px) !important;
font-weight: 700;
margin-bottom: 8px;
display: block;
}
.counter-text {
font-size: clamp(14px, 4vw, 16px) !important;
line-height: 1.5;
color: rgba(255, 255, 255, 0.85);
display: block;
}
/* ============================================= */
/* 3. FEATURED PROPERTIES SLIDER SECTION */
/* ============================================= */
.slider-container-box {
position: relative;
margin: 50px auto;
padding: 20px 0 !important;
}
.slider-wrapper-inner {
display: flex;
gap: 20px;
overflow-x: auto;
scrollbar-width: none;
scroll-snap-type: x mandatory !important;
scroll-behavior: smooth !important;
-webkit-overflow-scrolling: touch;
padding: 5px 5px 40px 5px !important;
align-items: stretch !important;
}
.slider-wrapper-inner::-webkit-scrollbar { display: none; }
.polaroid {
flex: 0 0 350px;
background-color: white;
border-radius: 12px;
overflow: hidden;
transition: transform 0.3s ease-in-out, box-shadow 0.3s ease-in-out;
border: 1px solid #f1f5f9;
scroll-snap-align: start !important;
display: flex !important;
flex-direction: column !important;
text-decoration: none !important;
color: inherit !important;
}
.polaroid:hover {
transform: translateY(-6px);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.04) !important;
}
div.image-container { position: relative; width: 100%; height: 220px; }
div.image-container img { width: 100% !important; height: 100% !important; object-fit: cover; }
.badge {
position: absolute;
top: 12px;
left: 12px;
background-color: #bb254a;
color: white;
font-size: 13px !important;
font-weight: bold;
padding: 4px 8px;
border-radius: 2px;
}
div.container {
padding: 24px 20px;
text-align: left;
display: flex !important;
flex-direction: column !important;
flex-grow: 1 !important;
}
.title { font-size: 16px !important; font-weight: bold; color: #111827; margin: 0 0 8px 0; }
.location { display: flex; align-items: flex-start; font-size: 13px; color: #6b7280; margin-bottom: 20px; }
.location i { font-size: 18px !important; color: #bb254a !important; margin-right: 5px; flex-shrink: 0;}
.info-grid {
display: flex;
justify-content: space-between;
border-bottom: 1px solid #f3f4f6;
padding-bottom: 18px;
margin-bottom: 18px;
margin-top: auto !important;
}
.info-item { flex: 1; }
.info-label { font-size: 12px; color: #9ca3af; margin-bottom: 4px; }
.info-value { font-size: 14px; font-weight: bold; color: #1f2937; }
.vnf-price-red { font-size: 15px !important; font-weight: 800 !important; color: #bb254a !important; }
.footer-link { display: flex; justify-content: space-between; align-items: center; text-decoration: none; color: #bb254a; font-size: 14px; font-weight: 500; }
.arrow { width: 26px; height: 26px; border: 1px solid #e5e7eb; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #6b7280; font-size: 12px; transition: all 0.3s ease; }
.polaroid:hover .arrow { background-color: #bb254a; color: white; border-color: #bb254a; transform: translateX(3px); }
/* ============================================= */
/* 4. SERVICES SECTION */
/* ============================================= */
.services-section {
background-color: rgb(248,250,252) !important;
padding: 50px 0 !important;
}
.services-grid {
display: grid !important;
grid-template-columns: repeat(6, 1fr) !important;
gap: 12px !important;
}
.service-card {
background-color: #ffffff !important;
border-radius: 12px !important;
padding: 24px 12px !important;
display: flex !important;
flex-direction: column !important;
justify-content: space-between !important;
min-height: 290px !important;
transition: all 0.3s ease-in-out !important;
cursor: pointer !important;
}
.service-card:hover {
transform: translateY(-6px) !important;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.04) !important;
}
.service-icon { font-size: 32px !important; color: #bb254a !important; margin-bottom: 20px !important; }
.service-title { font-size: 15px !important; font-weight: 700 !important; color: #0f172a !important; line-height: 1.4 !important; margin: 0 0 12px 0 !important; }
.service-desc { font-size: 12.5px !important; color: #64748b !important; line-height: 1.5 !important; margin: 0 0 24px 0 !important; }
.service-link {
display: inline-flex !important;
align-items: center !important;
gap: 6px !important;
text-decoration: none !important;
color: #0f172a !important;
font-size: 13px !important;
font-weight: 600 !important;
transition: color 0.2s ease !important;
margin-top: auto !important;
}
.service-card:hover .service-link { color: #bb254a !important; }
.service-link i { font-size: 14px !important; transition: transform 0.2s ease !important; }
.service-card:hover .service-link i { transform: translateX(4px) !important; }
/* MODAL POPUP */
.vnf-modal-overlay {
position: fixed !important;
top: 0 !important;
left: 0 !important;
width: 100% !important;
height: 100% !important;
background-color: rgba(15, 23, 42, 0.6) !important;
backdrop-filter: blur(4px) !important;
display: flex !important;
align-items: center !important;
justify-content: center !important;
z-index: 999999 !important;
opacity: 0 !important;
pointer-events: none !important;
transition: opacity 0.3s ease !important;
}
.vnf-modal-overlay.active { opacity: 1 !important; pointer-events: auto !important; }
.vnf-modal-wrapper {
background-color: #ffffff !important;
width: 100% !important;
max-width: 650px !important;
border-radius: 12px !important;
box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25) !important;
position: relative !important;
padding: 32px !important;
max-height: 85vh !important;
overflow-y: auto !important;
transform: scale(0.9) !important;
transition: transform 0.3s ease !important;
}
.vnf-modal-overlay.active .vnf-modal-wrapper { transform: scale(1) !important; }
.vnf-modal-close {
position: absolute !important;
top: 20px !important;
right: 20px !important;
background: none !important;
border: none !important;
font-size: 24px !important;
color: #94a3b8 !important;
cursor: pointer !important;
}
.vnf-modal-close:hover { color: #bb254a !important; }
.vnf-popup-icon { font-size: 40px !important; color: #bb254a !important; margin-bottom: 16px !important; }
.vnf-popup-title { font-size: 22px !important; font-weight: 700 !important; color: #0f172a !important; margin: 0 0 16px 0 !important; border-bottom: 2px solid #f1f5f9 !important; padding-bottom: 12px !important; }
.vnf-popup-content p { font-size: 14px !important; color: #475569 !important; line-height: 1.6 !important; margin: 0 0 16px 0 !important; }
.vnf-popup-content h4 { font-size: 15px !important; font-weight: 600 !important; color: #0f172a !important; margin: 20px 0 10px 0 !important; }
.vnf-popup-content ul { margin: 0 0 20px 0 !important; padding-left: 20px !important; }
.vnf-popup-content li { font-size: 14px !important; color: #475569 !important; line-height: 1.6 !important; margin-bottom: 8px !important; }
/* ============================================= */
/* 5. SUCCESS STORIES SECTION */
/* ============================================= */
.stories-section { background-color: #ffffff; padding: 50px 0; }
.stories-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 24px; }
.stories-main-title { font-size: clamp(1.6rem, 3vw, 2.2rem) !important; font-weight: 800; color: #0f172a; margin: 0; }
.stories-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.story-card {
position: relative;
border-radius: 12px;
overflow: hidden;
min-height: 320px;
display: flex;
flex-direction: column;
justify-content: flex-end;
padding: 30px 24px;
background-size: cover;
background-position: center;
background-repeat: no-repeat;
transition: all 0.3s ease-in-out;
}
.story-card::before {
content: '';
position: absolute;
top: 0; left: 0; right: 0; bottom: 0;
background: linear-gradient(180deg, rgba(15, 23, 42, 0.4) 0%, rgba(15, 23, 42, 0.85) 100%);
z-index: 1;
transition: opacity 0.3s ease;
}
.story-card:hover { transform: translateY(-6px); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.04) !important; }
.story-content { position: relative; z-index: 2; color: #ffffff; }
.country-badge {
display: inline-flex;
align-items: center;
gap: 6px;
background-color: #ffffff;
color: #0f172a;
padding: 4px 10px;
border-radius: 4px;
font-size: 11px;
font-weight: 700;
text-transform: uppercase;
margin-bottom: 16px;
}
.country-badge img { width: 16px; height: auto; object-fit: contain; }
.story-title { font-size: 18px !important; font-weight: 700; margin: 0 0 10px 0; line-height: 1.4; }
.story-desc { font-size: 13px !important; color: rgba(255, 255, 255, 0.8); line-height: 1.6; margin: 0 0 24px 0; }
.story-meta-grid { display: flex; gap: 32px; border-top: 1px solid rgba(255, 255, 255, 0.15); padding-top: 16px; }
.meta-item { flex: 1; }
.meta-value { font-size: 16px; font-weight: 700; color: #ffffff; margin-bottom: 2px; display: block; }
.meta-label { font-size: 11px; color: rgba(255, 255, 255, 0.65); display: block; }
/* ============================================= */
/* 6. PROCESS TIMELINE SECTION */
/* ============================================= */
.timeline-section { background-color: #ffffff; padding: 50px 0; background-color: rgb(248, 250, 252) !important; }
.timeline-flex { display: flex; justify-content: space-between; align-items: flex-start; position: relative; padding: 20px 0; }
.timeline-flex::before {
content: '';
position: absolute;
top: 45px;
left: 8%; right: 8%;
height: 2px;
border-top: 2px dashed #cbd5e1;
z-index: 1;
}
.timeline-item {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
position: relative;
z-index: 2;
padding: 0 10px;
}
.timeline-icon-circle {
width: 50px; height: 50px;
background-color: #bb254a;
border-radius: 50%;
display: flex; align-items: center; justify-content: center;
color: #ffffff; font-size: 22px; margin-bottom: 12px;
box-shadow: 0 4px 10px rgba(187, 37, 74, 0.2);
transition: all 0.3s ease-in-out;
}
.timeline-item:hover .timeline-icon-circle { transform: scale(1.15); background-color: #e02424; }
.step-index { font-size: 13px; font-weight: 700; color: #bb254a; margin-bottom: 6px; }
.step-title { font-size: 13px !important; font-weight: 700; color: #0f172a; text-transform: uppercase; margin: 0 0 10px 0; line-height: 1.4; }
.step-description { font-size: 12.5px !important; color: #64748b; line-height: 1.6; margin: 0; }
/* ============================================= */
/* 7. CLIENT LOGOS MARQUEE SECTION */
/* ============================================= */
.marquee-section {
background-color: #ffffff;
padding: 50px 0;
overflow: hidden;
position: relative;
}
.marquee-section::before, .marquee-section::after {
content: ""; position: absolute; top: 0; width: 100px; height: 100%; z-index: 2; pointer-events: none;
}
.marquee-section::before { left: 0; background: linear-gradient(to right, rgba(255,255,255,1), rgba(255,255,255,0)); }
.marquee-section::after { right: 0; background: linear-gradient(to left, rgba(255,255,255,1), rgba(255,255,255,0)); }
.marquee-container { display: flex; width: max-content; }
.marquee-track { display: flex; gap: 16px; padding: 10px; animation: scrollMarquee 25s linear infinite; }
.logo-item {
width: 160px; height: 65px; background-color: #ffffff;
border: 1px solid #f0f0f0; border-radius: 8px;
display: flex; align-items: center; justify-content: center;
padding: 10px 15px; flex-shrink: 0; transition: all 0.3s ease-in-out;
}
.logo-item:hover { transform: translateY(-3px); border-color: #bb254a; }
.logo-item img { max-width: 100%; max-height: 100%; object-fit: contain; filter: grayscale(20%); transition: filter 0.3s ease; }
.logo-item:hover img { filter: grayscale(0%); }
.marquee-container:hover .marquee-track { animation-play-state: paused; }
@keyframes scrollMarquee {
0% { transform: translateX(-50%); }
100% { transform: translateX(0); }
}
/* ============================================= */
/* 8. CTA FULL-WIDTH BANNER SECTION */
/* ============================================= */
.cta-fullwidth-section {
width: 100% !important;
position: relative;
background: linear-gradient(90deg, rgba(89, 17, 36, 0.95) 0%, rgba(15, 32, 67, 0.85) 100%),
url('https://vnfactory.vn/wp-content/uploads/2025/12/bat-tay.jpg');
background-size: cover;
background-position: center;
background-repeat: no-repeat;
padding: 60px 0;
}
.cta-flex-container {
display: flex;
align-items: center;
justify-content: space-between;
}
.cta-left-content { flex: 1; max-width: 750px; }
.cta-main-heading { font-size: clamp(24px, 4vw, 36px) !important; font-weight: 800; color: #ffffff; text-transform: uppercase; margin: 0 0 12px 0; line-height: 1.3; }
.cta-sub-text { font-size: clamp(14px, 2.5vw, 16px) !important; color: rgba(255, 255, 255, 0.85); margin: 0 0 32px 0; line-height: 1.5; }
.cta-btn-group { display: flex; gap: 16px; flex-wrap: wrap; }
.cta-base-btn {
display: inline-flex; align-items: center; justify-content: center; gap: 10px;
padding: 14px 28px; font-size: 14px; font-weight: 700; text-transform: uppercase;
border-radius: 6px; text-decoration: none; transition: all 0.3s ease-in-out;
}
.btn-request { background-color: #eab308; color: #0f172a !important; border: none; }
.btn-request:hover { background-color: #bb254a; color: #ffffff !important; transform: translateY(-2px); }
.btn-contact { background-color: #ffffff; color: #591124 !important; border-color: #ffffff; transform: translateY(-2px); }
/* ============================================= */
/* RESPONSIVE LAYOUT CHUNG DI ĐỘNG */
/* ============================================= */
@media (max-width: 1200px) {
.services-grid { grid-template-columns: repeat(3, 1fr) !important; }
}
@media (max-width: 1024px) {
.stories-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
.hero-banner-section { min-height: 580px !important; padding: 80px 0 !important; }
.hero-btn-group { display: flex !important; flex-direction: column !important; background: none !important; border: none !important; padding: 0 !important; width: 100% !important; gap: 10px !important; }
.hero-base-btn { width: 100% !important; border-radius: 8px !important; padding: 14px 20px !important; }
.counter-container { grid-template-columns: repeat(2, 1fr); gap: 30px 15px; }
.counter-item:last-child { grid-column: span 2; }
.counter-item:not(:last-child)::after { display: none; }
.counter-item { border-bottom: 1px solid rgba(255, 255, 255, 0.1); padding-bottom: 20px; }
.counter-item:last-child { border-bottom: none; }
.polaroid { flex: 0 0 310px; scroll-snap-align: center !important; }
.services-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 12px !important; }
.timeline-flex::before { display: none; }
.timeline-flex { flex-direction: column; gap: 28px; align-items: center; }
.timeline-item { width: 100%; max-width: 450px; background-color: #ffffff; border: 1px solid #eaeaea; border-radius: 8px; padding: 20px; }
.logo-item { width: 130px; height: 55px; }
.cta-btn-group { flex-direction: column; }
.cta-base-btn { width: 100%; }
}
@media (max-width: 480px) {
.services-grid { grid-template-columns: 1fr !important; }
.stories-grid { grid-template-columns: 1fr; }
}
Đất công nghiệp • Nhà Xưởng • Văn Phòng
Tìm địa điểm phù hợp cho doanh nghiệp của bạn tại việt nam
Tiếp cận hơn 1.000 lựa chọn nhà xưởng và khu công nghiệp, cùng dịch vụ hỗ trợ giấy phép đầu tư, môi trường và vận hành nhà máy.
560+
Khu công nghiệp
trên toàn quốc
2000+
Nhà xưởng &
đất công nghiệp
1200+
Dự án FDI
đã hỗ trợ
25+
Quốc gia
đã phục vụ
100%
Cam kết
đúng tiến độ
Nghiên cứu Thị trường & Tư vấn
Phân tích thị trường chuyên sâu, đánh giá cơ hội và tư vấn chiến lược đầu tư hiệu quả.
Tìm hiểu thêm
Tìm kiếm Địa điểm
& Đất công nghiệp
Tìm kiếm, đánh giá địa điểm phù hợp với nhu cầu và ngân sách của nhà đầu tư.
Tìm hiểu thêm
Pháp lý & Giấy phép Đầu tư
Hỗ trợ toàn diện về pháp lý, thủ tục đầu tư và xin giấy phép kinh doanh.
Tìm hiểu thêm
Thiết kế
& Xây dựng
Thiết kế, xây dựng nhà xưởng và hạ tầng theo tiêu chuẩn quốc tế.
Tìm hiểu thêm
Nhân sự
& Tuyển dụng
Tuyển dụng, đào tạo và cung cấp giải pháp nhân sự cho doanh nghiệp.
Tìm hiểu thêm
Logistics
& Chuỗi cung ứng
Tối ưu chuỗi cung ứng, kho bãi và giải pháp logistics toàn diện.
Tìm hiểu thêm

Nhà đầu tư Nhật Bản
Nhà sản xuất Điện tử
Hỗ trợ nhà sản xuất thiết bị điện tử Nhật Bản xây dựng nhà xưởng công nghệ cao rộng 20.000 m² tại Bắc Ninh.
6 tháng
Từ cấp phép đến xây dựng
20.000 m²
Quy mô nhà xưởng

Hàn Quốc
Nhà máy Phụ tùng Ô tô
Đồng hành cùng nhà cung cấp phụ tùng ô tô Hàn Quốc đầu tư và vận hành nhà máy ổn định tại Hải Phòng.
5 tháng
Từ cấp phép đến xây dựng
15.000 m²
Quy mô nhà xưởng

Trung Quốc
Nhà máy sản xuất Thiết bị Thông minh
Hỗ trợ nhà đầu tư Trung Quốc thiết lập thành công nhà máy công nghệ cao quy mô lớn tại Bình Dương.
7 tháng
Từ cấp phép đến xây dựng
18.000 m²
Quy mô nhà xưởng
01
TƯ VẤN NHU CẦU
Tiếp nhận nhu cầu đầu tư và tư vấn giải pháp phù hợp về nhà xưởng, văn phòng, đất công nghiệp và khu công nghiệp.
02
ĐỀ XUẤT ĐỊA ĐIỂM
Lựa chọn và đề xuất nhà xưởng, văn phòng, đất công nghiệp hoặc khu công nghiệp phù hợp theo vị trí, ngân sách và kế hoạch sản xuất.
03
KHẢO SÁT & ĐÀM PHÁN
Sắp xếp khảo sát thực tế, hỗ trợ đàm phán điều khoản thuê và làm việc với chủ đầu tư.
04
GIẤY PHÉP & PHÁP LÝ
Hỗ trợ thành lập doanh nghiệp, giấy phép đầu tư, môi trường, PCCC và các thủ tục pháp lý liên quan.
05
THIẾT KẾ & XÂY DỰNG
Kết nối đơn vị thiết kế, thi công và giám sát xây dựng hoặc cải tạo nhà máy theo nhu cầu sản xuất.
06
VẬN HÀNH & MỞ RỘNG
Đồng hành cùng doanh nghiệp trong quá trình vận hành, mở rộng nhà máy và phát triển hoạt động tại Việt Nam.
Sẵn sàng bắt đầu dự án của bạn cùng chuyên gia?
Đội ngũ chuyên gia pháp lý và bất động sản của VnFactory luôn sẵn sàng đồng hành cùng bạn ở mọi địa phương tại Việt Nam.
// 1. JS Chuyển Background Hero Banner
document.addEventListener("DOMContentLoaded", function() {
const slides = document.querySelectorAll('.hero-slide-item');
if (slides.length > 0) {
let currentSlide = 0;
setInterval(function() {
slides[currentSlide].classList.remove('active');
currentSlide = (currentSlide + 1) % slides.length;
slides[currentSlide].classList.add('active');
}, 8000);
}
});
// 2. JS Slider Card Bất động sản
const scroller = document.getElementById('scrollerContainer');
let autoPlayTimer = null;
function smoothScrollTo(element, target, duration) {
const start = element.scrollLeft;
const change = target - start;
let startTime = null;
function animate(currentTime) {
if (!startTime) startTime = currentTime;
const timeElapsed = currentTime - startTime;
const progress = Math.min(timeElapsed / duration, 1);
const ease = progress < 0.5 ? 2 * progress * progress : -1 + (4 - 2 * progress) * progress;
element.scrollLeft = start + change * ease;
if (timeElapsed {
if (window.innerWidth > 768 && scroller) {
const firstCard = scroller.querySelector('.polaroid');
if (!firstCard) return;
const stepDistance = firstCard.offsetWidth + 20;
const maxScroll = scroller.scrollWidth - scroller.clientWidth;
if (scroller.scrollLeft >= maxScroll - 10) {
smoothScrollTo(scroller, 0, 600);
} else {
smoothScrollTo(scroller, scroller.scrollLeft + stepDistance, 450);
}
}
}, 3000);
}
function stopAutoPlay() { clearInterval(autoPlayTimer); }
if (scroller) {
startAutoPlay();
scroller.addEventListener('mouseenter', stopAutoPlay);
scroller.addEventListener('mouseleave', startAutoPlay);
scroller.addEventListener('touchstart', stopAutoPlay);
}
// 3. JS Modal Popup Dịch vụ
function openVnfModal(cardElement) {
const hiddenContent = cardElement.querySelector('.seo-hidden-content');
if (!hiddenContent) return;
const contentZone = document.getElementById('vnfModalDynamicContent');
contentZone.innerHTML = hiddenContent.innerHTML;
document.getElementById('vnfServiceModal').classList.add('active');
document.body.style.overflow = 'hidden';
}
function closeVnfModal(event) {
if (!event || event.target.classList.contains('vnf-modal-overlay')) {
document.getElementById('vnfServiceModal').classList.remove('active');
document.body.style.overflow = '';
}
}
document.addEventListener('keydown', function(e) {
if (e.key === 'Escape') closeVnfModal(null);
});