ENGINEERED SOLUTIONS FOR INFRASTRUCTURE
.prs-label { display: flex; align-items: center; gap: 12px; } .prs-label-line { width: 28px; height: 2px; background-color: #C8102E; flex-shrink: 0; } .prs-label-text { font-family: inherit; font-size: 13px; font-weight: 600; line-height: 1.3; letter-spacing: 1.4px; text-transform: uppercase; color: #fff; } @media (max-width: 767px) { .prs-label { gap: 10px; } .prs-label-line { width: 22px; } .prs-label-text { font-size: 11px; letter-spacing: 1.1px; } }

High-Performance Solution for Long-Term Soil Stabilization

Neoloy® Tough-Cells stabilize weak soils and reinforce roads, railways, ports, airports, mining and other heavy-load infrastructure — reducing earthworks, optimizing materials and improving lifecycle performance.

Since 1996
Specialized Experience
0
Projects Completed
0
Countries Served
0
Published Papers
/* ======================================== PRS - DELICATE STATISTICS BAR ======================================== */ .prs-stats { width: 100%; display: grid; grid-template-columns: repeat(4, 1fr); background: transparent; border-top: 1px solid rgba(101, 97, 92, 0.14); border-bottom: 1px solid rgba(101, 97, 92, 0.14); } /* INDIVIDUAL STAT */ .prs-stat { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 112px; padding: 20px 18px; text-align: center; box-sizing: border-box; } /* SUBTLE VERTICAL SEPARATORS */ .prs-stat:not(:last-child)::after { content: ""; position: absolute; right: 0; top: 25%; bottom: 25%; width: 1px; background: rgba(101, 97, 92, 0.14); } /* MAIN VALUE */ .prs-stat-value { margin-bottom: 7px; font-family: inherit; font-size: clamp(25px, 2.2vw, 34px); font-weight: 650; line-height: 1; letter-spacing: -0.6px; color: #B91E39; font-variant-numeric: tabular-nums; } /* SINCE 1996 */ .prs-since { white-space: nowrap; } /* LABEL */ .prs-stat-label { font-family: inherit; font-size: 11px; font-weight: 600; line-height: 1.3; letter-spacing: 0.8px; text-transform: uppercase; color: #34404E; } /* ======================================== TABLET / MOBILE ======================================== */ @media (max-width: 767px) { .prs-stats { grid-template-columns: repeat(2, 1fr); } .prs-stat { min-height: 100px; padding: 18px 10px; } .prs-stat-value { font-size: 25px; margin-bottom: 7px; } .prs-stat-label { font-size: 9.5px; letter-spacing: 0.55px; } /* Remove desktop separators */ .prs-stat::after { display: none; } /* Vertical divider */ .prs-stat:nth-child(odd) { border-right: 1px solid rgba(101, 97, 92, 0.14); } /* Horizontal divider */ .prs-stat:nth-child(1), .prs-stat:nth-child(2) { border-bottom: 1px solid rgba(101, 97, 92, 0.14); } } /* EXTRA SMALL MOBILE */ @media (max-width: 380px) { .prs-stat { min-height: 92px; padding: 15px 7px; } .prs-stat-value { font-size: 22px; } .prs-stat-label { font-size: 8.5px; letter-spacing: 0.4px; } } (function () { const statsSection = document.querySelector('.prs-stats'); if (!statsSection) return; const counters = statsSection.querySelectorAll('.prs-counter'); const reduceMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches; function formatNumber(number) { return Math.round(number).toLocaleString('en-US'); } function animateCounter(counter) { if (counter.dataset.animated === 'true') return; counter.dataset.animated = 'true'; const target = Number(counter.dataset.target); const duration = 1500; if (reduceMotion) { counter.textContent = formatNumber(target); return; } const start = performance.now(); function update(time) { const elapsed = time - start; const progress = Math.min(elapsed / duration, 1); /* Smooth ease-out */ const eased = 1 - Math.pow(1 - progress, 4); counter.textContent = formatNumber(target * eased); if (progress < 1) { requestAnimationFrame(update); } else { counter.textContent = formatNumber(target); } } requestAnimationFrame(update); } const observer = new IntersectionObserver( function (entries) { entries.forEach(function (entry) { if (entry.isIntersecting) { counters.forEach(animateCounter); observer.disconnect(); } }); }, { threshold: 0.3 } ); observer.observe(statsSection); })();
.prs-section-label { display: inline-flex; align-items: center; gap: 10px; } .prs-section-line { width: 30px; height: 1px; background: #B91E39; flex-shrink: 0; } .prs-section-text { font-family: inherit; font-size: 11px; font-weight: 600; line-height: 1.2; letter-spacing: 1.2px; text-transform: uppercase; color: #A82038; } @media (max-width: 767px) { .prs-section-line { width: 24px; } .prs-section-text { font-size: 10px; letter-spacing: 1px; } }

Build Reliable Infrastructure on Challenging Ground

Weak, variable, saturated or expansive soils can increase excavation, imported aggregate, structural thickness, maintenance requirements and project risk. PRS combines cellular confinement technology with project-specific engineering to improve confinement, load distribution and structural performance.

How Cellular Confinement Systems Work

01

Stabilize weak subgrades

Improve load support and control deformation where conventional ground conditions limit performance.

02

Optimize structural layers

Reduce unnecessary thickness and imported material where project design and validation allow.

03

Use smarter infill options

Evaluate local, marginal or recycled materials when they meet the engineered project requirements.

04

Protect lifecycle value

Design for long-term performance, maintainability and lower intervention demand over the asset life.

/* ======================================== PRS - COMPACT CLIENT PROBLEM GRID ======================================== */ .prs-problem-grid { width: 100%; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; /* Prevent Elementor from stretching rows */ align-items: stretch; align-content: start; height: auto !important; } /* CARD */ .prs-problem-card { display: flex; flex-direction: column; align-items: flex-start; height: auto; min-height: 0; padding: 22px 24px; background: #ffffff; border: 1px solid rgba(101, 97, 92, 0.16); border-radius: 14px; box-sizing: border-box; transition: transform 0.25s ease, border-color 0.25s ease, background-color 0.25s ease; } /* DELICATE HOVER */ .prs-problem-card:hover { transform: translateY(-2px); border-color: rgba(185, 30, 57, 0.28); background: #fffefe; } /* NUMBER */ .prs-problem-number { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 36px; margin-bottom: 16px; padding: 0 10px; border-radius: 10px; background: rgba(185, 30, 57, 0.08); color: #B91E39; font-family: inherit; font-size: 14px; font-weight: 700; line-height: 1; box-sizing: border-box; } /* TITLE */ .prs-problem-title { margin: 0 0 7px 0; font-family: inherit; font-size: 18px; font-weight: 600; line-height: 1.25; letter-spacing: -0.2px; color: #303A49; } /* BODY */ .prs-problem-text { margin: 0; font-family: inherit; font-size: 14px; font-weight: 400; line-height: 1.48; color: #34404E; } /* ======================================== TABLET ======================================== */ @media (max-width: 1024px) { .prs-problem-grid { gap: 12px; } .prs-problem-card { padding: 20px; } .prs-problem-title { font-size: 17px; } .prs-problem-text { font-size: 13.5px; } } /* ======================================== MOBILE ======================================== */ @media (max-width: 767px) { .prs-problem-grid { grid-template-columns: 1fr; gap: 10px; } .prs-problem-card { padding: 20px 18px; border-radius: 12px; } .prs-problem-number { min-width: 38px; height: 34px; margin-bottom: 14px; font-size: 13px; } .prs-problem-title { margin-bottom: 6px; font-size: 17px; } .prs-problem-text { font-size: 14px; line-height: 1.45; } }
.prs-section-label { display: inline-flex; align-items: center; gap: 10px; } .prs-section-line { width: 30px; height: 1px; background: #B91E39; flex-shrink: 0; } .prs-section-text { font-family: inherit; font-size: 11px; font-weight: 600; line-height: 1.2; letter-spacing: 1.2px; text-transform: uppercase; color: #A82038; } @media (max-width: 767px) { .prs-section-line { width: 24px; } .prs-section-text { font-size: 10px; letter-spacing: 1px; } }

Engineered for Demanding Infrastructure

PRS solutions support infrastructure across industries where challenging ground conditions, heavy loads and long-term performance are critical.

/* ======================================== PRS INDUSTRIES — COMPACT DESIGN ======================================== */ .prs-industries { width: 100%; } /* GRID */ .prs-industry-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; } /* ======================================== CARD ======================================== */ .prs-industry-card { display: flex; flex-direction: column; min-height: 165px; padding: 20px 22px; background: #ffffff; border: 1px solid rgba(101, 97, 92, 0.16); border-radius: 14px; box-sizing: border-box; text-decoration: none !important; transition: transform 0.25s ease, border-color 0.25s ease, background-color 0.25s ease; } /* HOVER */ .prs-industry-card:hover { transform: translateY(-2px); border-color: rgba(185, 30, 57, 0.28); background: #fffefe; } /* ======================================== TITLE ======================================== */ .prs-industry-card h3 { margin: 0 0 7px 0; font-family: inherit; font-size: 17px; font-weight: 600; line-height: 1.25; letter-spacing: -0.2px; color: #303A49; } /* ======================================== DESCRIPTION ======================================== */ .prs-industry-card p { margin: 0 0 13px 0; font-family: inherit; font-size: 13px; font-weight: 400; line-height: 1.45; color: #34404E; } /* ======================================== LINK ======================================== */ .prs-industry-link { display: inline-flex; align-items: center; gap: 6px; margin-top: auto; font-family: inherit; font-size: 11.5px; font-weight: 600; color: #B91E39; } /* ARROW */ .prs-industry-link span { font-size: 14px; transition: transform 0.2s ease; } .prs-industry-card:hover .prs-industry-link span { transform: translateX(3px); } /* ======================================== SECONDARY INDUSTRIES ======================================== */ .prs-secondary-industries { display: flex; align-items: center; gap: 14px; margin-top: 14px; padding-top: 14px; border-top: 1px solid rgba(101, 97, 92, 0.14); } /* LABEL */ .prs-secondary-label { flex-shrink: 0; font-family: inherit; font-size: 9.5px; font-weight: 600; letter-spacing: 0.9px; text-transform: uppercase; color: #65615C; } /* LINKS */ .prs-secondary-links { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; } .prs-secondary-links a { font-family: inherit; font-size: 11.5px; font-weight: 500; color: #4C5056; text-decoration: none !important; transition: color 0.2s ease; } .prs-secondary-links a:hover { color: #B91E39; } /* DOT */ .prs-separator { font-size: 8px; color: rgba(101, 97, 92, 0.45); } /* VIEW ALL */ .prs-all-industries { display: inline-flex; align-items: center; gap: 5px; margin-left: auto; flex-shrink: 0; font-family: inherit; font-size: 11.5px; font-weight: 600; color: #B91E39 !important; text-decoration: none !important; } .prs-all-industries span { font-size: 14px; transition: transform 0.2s ease; } .prs-all-industries:hover span { transform: translateX(3px); } /* ======================================== TABLET ======================================== */ @media (max-width: 1024px) { .prs-industry-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } .prs-industry-card { min-height: 155px; padding: 19px 20px; } .prs-secondary-industries { flex-wrap: wrap; } .prs-all-industries { margin-left: 0; } } /* ======================================== MOBILE ======================================== */ @media (max-width: 767px) { .prs-industry-grid { grid-template-columns: 1fr; gap: 9px; } .prs-industry-card { min-height: auto; padding: 18px 18px; border-radius: 12px; } .prs-industry-card h3 { margin-bottom: 6px; font-size: 16px; } .prs-industry-card p { margin-bottom: 11px; font-size: 13px; } .prs-secondary-industries { display: block; margin-top: 14px; padding-top: 14px; } .prs-secondary-label { display: block; margin-bottom: 9px; } .prs-secondary-links { gap: 6px 8px; margin-bottom: 11px; } .prs-secondary-links a { font-size: 11.5px; } .prs-all-industries { margin: 0; } }
.prs-section-label { display: inline-flex; align-items: center; gap: 10px; } .prs-section-line { width: 30px; height: 1px; background: #B91E39; flex-shrink: 0; } .prs-section-text { font-family: inherit; font-size: 11px; font-weight: 600; line-height: 1.2; letter-spacing: 1.2px; text-transform: uppercase; color: #A82038; } @media (max-width: 767px) { .prs-section-line { width: 24px; } .prs-section-text { font-size: 10px; letter-spacing: 1px; } }

Proven in Real Infrastructure Projects

MBZ Railway Project UAE reinforced with Neoloy Tough-Cells
Railway · United Arab Emirates

MBZ Railway Project

Neoloy® Tough-Cells reinforced local dune sand to improve railway foundation performance while reducing earthworks and imported material requirements.

56% Less earthworks
8.6× Structural stiffness
Learn More About This Case Study →
Mining haul road upgrade Indonesia with Neoloy Tough-Cells
Mining · Indonesia

Haul Road Upgrade

Neoloy® Tough-Cells strengthened a weak subgrade using locally available infill, reducing pavement thickness and dependence on imported materials.

56% Logistics savings
37% Thinner pavement
Learn More About This Case Study →
UNOPS airfield rehabilitation South Sudan using Neoloy Tough-Cells
Airport · South Sudan

UNOPS Airfield Rehabilitation

Neoloy® Tough-Cells stabilized poor local soils for airfield rehabilitation, enabling a thinner pavement structure and faster construction.

40% Thinner pavement
45% Faster construction
Learn More About This Case Study →
Churchill Railway reinforcement Canada with Neoloy Tough-Cells
Railway · Canada

Churchill Railway Reinforcement

Neoloy® Tough-Cells reinforced railway infrastructure over extremely weak ground, supporting heavy rail traffic while improving long-term structural performance.

90% Faster construction
60% Longer design life
Learn More About This Case Study →
/* ======================================== PRS EVIDENCE / CASE STUDIES ======================================== */ .prs-evidence-cards { width: 100%; } /* GRID */ .prs-evidence-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; } /* ======================================== CARD ======================================== */ .prs-case-card { display: flex; flex-direction: column; min-width: 0; overflow: hidden; background: #ffffff; border: 1px solid rgba(101, 97, 92, 0.16); border-radius: 14px; box-sizing: border-box; transition: transform 0.25s ease, border-color 0.25s ease, background-color 0.25s ease; } /* DELICATE HOVER */ .prs-case-card:hover { transform: translateY(-2px); border-color: rgba(185, 30, 57, 0.28); background: #fffefe; } /* ======================================== IMAGE ======================================== */ .prs-case-image-link { display: block; width: 100%; text-decoration: none !important; } .prs-case-image { width: 100%; height: 135px; overflow: hidden; background: #f4f4f4; } .prs-case-image img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform 0.45s ease; } /* VERY SUBTLE IMAGE ZOOM */ .prs-case-card:hover .prs-case-image img { transform: scale(1.025); } /* ======================================== BODY ======================================== */ .prs-case-body { display: flex; flex-direction: column; flex: 1; padding: 18px 18px 16px; } .prs-case-content { display: flex; flex-direction: column; flex: 1; } /* ======================================== SECTOR ======================================== */ .prs-case-sector { display: block; margin-bottom: 9px; font-family: inherit; font-size: 9px; font-weight: 700; line-height: 1.3; letter-spacing: 0.85px; text-transform: uppercase; color: #B91E39; } /* ======================================== TITLE ======================================== */ .prs-case-title { margin: 0 0 7px 0; font-family: inherit; font-size: 17px; font-weight: 600; line-height: 1.25; letter-spacing: -0.2px; color: #303A49; } /* ======================================== DESCRIPTION ======================================== */ .prs-case-description { margin: 0 0 14px 0; font-family: inherit; font-size: 12.5px; font-weight: 400; line-height: 1.48; color: #34404E; } /* ======================================== METRICS ======================================== */ .prs-case-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; margin-top: auto; } .prs-case-metric { padding: 9px; background: rgba(185, 30, 57, 0.045); border-radius: 8px; } .prs-case-metric strong { display: block; margin-bottom: 3px; font-family: inherit; font-size: 19px; font-weight: 700; line-height: 1; letter-spacing: -0.3px; color: #B91E39; } .prs-case-metric span { display: block; font-family: inherit; font-size: 9.5px; font-weight: 500; line-height: 1.3; color: #65615C; } /* ======================================== LEARN MORE ======================================== */ .prs-case-link { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 14px; padding-top: 12px; border-top: 1px solid rgba(101, 97, 92, 0.12); font-family: inherit; font-size: 11px; font-weight: 600; line-height: 1.3; color: #B91E39 !important; text-decoration: none !important; } .prs-case-link span { flex-shrink: 0; font-size: 14px; transition: transform 0.2s ease; } .prs-case-card:hover .prs-case-link span { transform: translateX(3px); } /* ======================================== EXPLORE ALL ======================================== */ .prs-evidence-footer { display: flex; margin-top: 14px; } .prs-all-projects { display: inline-flex; align-items: center; gap: 6px; font-family: inherit; font-size: 12px; font-weight: 600; color: #B91E39 !important; text-decoration: none !important; } .prs-all-projects span { font-size: 15px; transition: transform 0.2s ease; } .prs-all-projects:hover span { transform: translateX(3px); } /* ======================================== TABLET ======================================== */ @media (max-width: 1100px) { .prs-evidence-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; } .prs-case-image { height: 150px; } } /* ======================================== MOBILE ======================================== */ @media (max-width: 767px) { .prs-evidence-grid { grid-template-columns: 1fr; gap: 10px; } .prs-case-card { border-radius: 12px; } .prs-case-image { height: 165px; } .prs-case-body { padding: 17px; } .prs-case-title { font-size: 17px; } .prs-case-description { font-size: 13px; line-height: 1.45; } .prs-case-metric { padding: 9px 10px; } .prs-case-metric strong { font-size: 19px; } }

Geocell Expertise from Engineering to Supply

PRS delivers engineered Neoloy® Tough-Cell solutions for demanding infrastructure and HDPE geocells for less demanding applications where common geocell performance is sufficient.

Neoloy® Tough-Cells

Project-Specific Engineering

Project analysis, structural design optimization and technical support tailored to site conditions, loading, available materials and performance requirements.

Neoloy® + HDPE

Manufacturing & Global Supply

High-capacity manufacturing of Neoloy® Tough-Cells and HDPE geocells, supported by quality control, production planning and international logistics.

Optimized for Each Project

120+ Neoloy® Configurations

More than 120 Neoloy® Tough-Cell configurations allow engineers to optimize geometry, material properties and system performance for specific project requirements.

Neoloy® Tough-Cells

Engineered for the Required Design Life

The solution is engineered around the required project service life, loading conditions and performance objectives — from temporary works to long-term infrastructure.

Also Available

HDPE Geocells for Common Applications

PRS also supplies HDPE geocells for less demanding applications where common geocell performance is sufficient, including low-traffic areas, channels, and moderated slopes applications.

Explore HDPE Geocells →
/* ======================================== PRS CAPABILITIES ======================================== */ .prs-capabilities { width: 100%; } /* ======================================== MAIN GRID ======================================== */ .prs-capability-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; } /* ======================================== CARD ======================================== */ .prs-capability-card { display: flex; flex-direction: column; min-width: 0; padding: 22px 20px; background: #ffffff; border: 1px solid rgba(101, 97, 92, 0.16); border-radius: 14px; box-sizing: border-box; transition: transform 0.25s ease, border-color 0.25s ease, background-color 0.25s ease; } /* DELICATE HOVER */ .prs-capability-card:hover { transform: translateY(-2px); border-color: rgba(185, 30, 57, 0.28); background: #fffefe; } /* ======================================== ICON ======================================== */ .prs-capability-icon { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; margin-bottom: 16px; border-radius: 10px; background: rgba(185, 30, 57, 0.07); } .prs-capability-icon svg { width: 21px; height: 21px; fill: none; stroke: #B91E39; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; } /* ======================================== SMALL TAG ======================================== */ .prs-capability-tag { display: block; margin-bottom: 7px; font-family: inherit; font-size: 8.5px; font-weight: 700; line-height: 1.3; letter-spacing: 0.75px; text-transform: uppercase; color: #B91E39; } .prs-capability-tag-neutral { color: #65615C; } /* ======================================== TITLE ======================================== */ .prs-capability-card h3 { margin: 0 0 8px 0; font-family: inherit; font-size: 17px; font-weight: 600; line-height: 1.27; letter-spacing: -0.2px; color: #303A49; } /* ======================================== TEXT ======================================== */ .prs-capability-card p { margin: 0; font-family: inherit; font-size: 12.5px; font-weight: 400; line-height: 1.5; color: #34404E; } /* ======================================== HDPE CALLOUT ======================================== */ .prs-hdpe-callout { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 18px; margin-top: 14px; padding: 18px 20px 18px 23px; background: #ffffff; border: 1px solid rgba(48, 58, 73, 0.13); border-radius: 12px; box-sizing: border-box; overflow: hidden; transition: transform 0.25s ease, border-color 0.25s ease; } /* THIN PRS ACCENT */ .prs-hdpe-callout::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: #B91E39; } /* SUBTLE HOVER */ .prs-hdpe-callout:hover { transform: translateY(-1px); border-color: rgba(185, 30, 57, 0.24); } /* ======================================== HDPE ICON ======================================== */ .prs-hdpe-icon { display: flex; align-items: center; justify-content: center; width: 42px; height: 42px; flex-shrink: 0; border-radius: 10px; background: #F7F7F7; border: 1px solid rgba(101, 97, 92, 0.12); } .prs-hdpe-icon svg { width: 23px; height: 23px; fill: none; stroke: #65615C; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; } /* ======================================== HDPE CONTENT ======================================== */ .prs-hdpe-content { min-width: 0; } .prs-hdpe-label { display: block; margin-bottom: 4px; font-family: inherit; font-size: 8.5px; font-weight: 700; letter-spacing: 0.8px; text-transform: uppercase; color: #B91E39; } .prs-hdpe-content h3 { margin: 0 0 5px 0; font-family: inherit; font-size: 16px; font-weight: 600; line-height: 1.25; color: #303A49; } .prs-hdpe-content p { margin: 0; max-width: 760px; font-family: inherit; font-size: 12.5px; font-weight: 400; line-height: 1.45; color: #34404E; } /* ======================================== HDPE CTA ======================================== */ .prs-hdpe-link { display: inline-flex; align-items: center; gap: 6px; flex-shrink: 0; white-space: nowrap; font-family: inherit; font-size: 11.5px; font-weight: 600; color: #B91E39 !important; text-decoration: none !important; } .prs-hdpe-link span { font-size: 14px; transition: transform 0.2s ease; } .prs-hdpe-link:hover span { transform: translateX(3px); } /* ======================================== TABLET ======================================== */ @media (max-width: 1100px) { .prs-capability-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; } .prs-hdpe-callout { grid-template-columns: auto minmax(0, 1fr); gap: 14px; padding-left: 21px; } .prs-hdpe-link { grid-column: 2; justify-self: start; } } /* ======================================== MOBILE ======================================== */ @media (max-width: 767px) { .prs-capability-grid { grid-template-columns: 1fr; gap: 10px; } .prs-capability-card { padding: 18px; border-radius: 12px; } .prs-capability-icon { width: 38px; height: 38px; margin-bottom: 13px; } .prs-capability-icon svg { width: 20px; height: 20px; } .prs-capability-card h3 { font-size: 16.5px; } .prs-capability-card p { font-size: 13px; line-height: 1.45; } /* HDPE */ .prs-hdpe-callout { display: flex; flex-direction: column; align-items: flex-start; gap: 11px; margin-top: 11px; padding: 18px 18px 18px 21px; border-radius: 12px; } .prs-hdpe-icon { width: 38px; height: 38px; } .prs-hdpe-content h3 { font-size: 16px; } .prs-hdpe-content p { font-size: 13px; line-height: 1.45; } .prs-hdpe-link { margin-top: 2px; white-space: normal; } }
.prs-section-label { display: inline-flex; align-items: center; gap: 10px; } .prs-section-line { width: 30px; height: 1px; background: #B91E39; flex-shrink: 0; } .prs-section-text { font-family: inherit; font-size: 11px; font-weight: 600; line-height: 1.2; letter-spacing: 1.2px; text-transform: uppercase; color: #A82038; } @media (max-width: 767px) { .prs-section-line { width: 24px; } .prs-section-text { font-size: 10px; letter-spacing: 1px; } }

Validated by Engineers.
Proven in the Field.

Independent engineers, contractors and international organizations have validated Neoloy® Tough-Cell across demanding infrastructure projects worldwide.

UK Royal Engineers Road Infrastructure
75% Less Aggregate ~⅓ lower projected road cost
“The performance of the Route Trident with Neoloy reinforcement exceeded all expectations.”
Lt. Col. M. T. G. Bazeley Commanding Officer · 28 Engineer Regiment
University of Delaware Railway
~7× Maintenance Improvement Reduced surfacing maintenance cycle
“The PRS-Neoloy reinforcement proved to be effective in reducing degradation, showing a reduction in the surfacing maintenance cycle on the order of seven times.”
Allan M. Zarembski, PhD, PE Director · Railroad Engineering & Safety Program · Amtrak Project
Ludemann Engenharia Airport
~6 m Very Soft Soil Settlement stabilization · No schedule impact
“The initial results indicate a stabilization of the settlements and an adequate distribution of the angular distortions, thanks to the high stiffness of the Neoloy 12 cm height cells.”
Sérgio Murari Ludemann Geotechnical Designer · GRU Airport
STRABAG Port Infrastructure
Local Materials Reused Avoided replacement of low-bearing soil
“The Neoloy system made it possible to make a rigid structure resistant to deformations with a high load-bearing modulus.”
Marcin Wróblewski Technical Director · Port of Gdańsk Expansion
Áncora Ingeniería Airport
Only Qualified Solution Exceeded all project requirements
“The PRS-Neoloy was the only qualified solution that not only met, but exceeded, all our project requirements.”
Eng. Mario Iruegas Evaristo CEO · Interjet Apron, Mexico City International Airport
UNOPS Roads & Airfield
Fast Delivery to a Remote Project Supply · On-site training · Technical support
“Fast delivery. Excellent technical support – on-site training. Responsive and professional service.”
William Muchira Project Manager · EU ZB Project
/* ======================================== PRS AUTOMATIC TESTIMONIALS ======================================== */ .prs-auto-testimonials { width: 100%; --prs-red: #B91E39; --prs-text: #303A49; --prs-grey: #65615C; } /* ======================================== SLIDER TRACK ======================================== */ .prs-auto-testimonials-track { display: flex; gap: 12px; width: 100%; overflow-x: auto; overflow-y: hidden; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; } .prs-auto-testimonials-track::-webkit-scrollbar { display: none; } /* ======================================== CARD ======================================== */ .prs-auto-card { flex: 0 0 calc((100% - 24px) / 3); display: flex; flex-direction: column; min-width: 0; padding: 20px; scroll-snap-align: start; background: #ffffff; border: 1px solid rgba(101, 97, 92, 0.16); border-radius: 14px; box-sizing: border-box; transition: transform 0.25s ease, border-color 0.25s ease, background-color 0.25s ease; } .prs-auto-card:hover { transform: translateY(-2px); border-color: rgba(185, 30, 57, 0.28); background: #fffefe; } /* ======================================== META ======================================== */ .prs-auto-meta { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 14px; } .prs-auto-company { display: block; min-width: 0; font-family: inherit; font-size: 11px; font-weight: 650; line-height: 1.3; color: var(--prs-text); } .prs-auto-application { font-family: inherit; font-size: 8.5px; font-weight: 700; line-height: 1.2; letter-spacing: 0.7px; text-transform: uppercase; color: var(--prs-red); text-align: right; } /* ======================================== PROOF / RESULT ======================================== */ .prs-auto-proof { margin-bottom: 17px; padding: 12px 13px; background: rgba(185, 30, 57, 0.055); border-radius: 9px; box-sizing: border-box; } .prs-auto-proof strong { display: block; margin-bottom: 4px; font-family: inherit; font-size: 16px; font-weight: 650; line-height: 1.25; letter-spacing: -0.2px; color: var(--prs-red); } .prs-auto-proof span { display: block; font-family: inherit; font-size: 10.5px; font-weight: 500; line-height: 1.35; color: var(--prs-grey); } /* ======================================== QUOTE ======================================== */ .prs-auto-card blockquote { flex: 1; margin: 0; padding: 0; border: 0; font-family: inherit; font-size: 13.5px; font-weight: 500; line-height: 1.55; color: var(--prs-text); } /* ======================================== SOURCE ======================================== */ .prs-auto-source { margin-top: 19px; padding-top: 13px; border-top: 1px solid rgba(101, 97, 92, 0.12); } .prs-auto-source strong { display: block; margin-bottom: 2px; font-family: inherit; font-size: 11.5px; font-weight: 600; line-height: 1.35; color: var(--prs-text); } .prs-auto-source span { display: block; font-family: inherit; font-size: 10px; font-weight: 400; line-height: 1.35; color: var(--prs-grey); } /* ======================================== BOTTOM ACTION ROW ======================================== */ .prs-auto-bottom-row { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 13px; } /* ======================================== EXPLORE LINK ======================================== */ .prs-auto-projects-link { display: inline-flex; align-items: center; gap: 7px; font-family: inherit; font-size: 11.5px; font-weight: 600; line-height: 1.3; color: var(--prs-red) !important; text-decoration: none !important; transition: gap 0.2s ease, opacity 0.2s ease; } .prs-auto-projects-link span { font-size: 14px; line-height: 1; transition: transform 0.2s ease; } .prs-auto-projects-link:hover { gap: 10px; } .prs-auto-projects-link:hover span { transform: translateX(2px); } /* ======================================== SLIDER CONTROLS ======================================== */ .prs-auto-controls { display: flex; align-items: center; gap: 7px; } .prs-auto-nav { display: inline-flex; align-items: center; justify-content: center; width: 31px; height: 31px; padding: 0; border: 1px solid rgba(101, 97, 92, 0.18); border-radius: 50%; background: transparent; color: var(--prs-red); cursor: pointer; box-shadow: none; transition: border-color 0.2s ease, background-color 0.2s ease, color 0.2s ease, transform 0.2s ease; } .prs-auto-nav svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; } .prs-auto-nav:hover { border-color: rgba(185, 30, 57, 0.42); background: rgba(185, 30, 57, 0.04); color: var(--prs-red); transform: translateY(-1px); } .prs-auto-nav:focus-visible { outline: 2px solid rgba(185, 30, 57, 0.20); outline-offset: 2px; } /* ======================================== TRUSTED BY ======================================== */ .prs-trusted { margin-top: 22px; padding: 18px 20px 20px; overflow: hidden; border-top: 1px solid rgba(101, 97, 92, 0.12); border-bottom: 1px solid rgba(101, 97, 92, 0.12); background: linear-gradient( 90deg, rgba(185, 30, 57, 0.016), rgba(255, 255, 255, 0) 30%, rgba(255, 255, 255, 0) 70%, rgba(185, 30, 57, 0.016) ), #ffffff; } .prs-trusted__heading { display: flex; align-items: center; gap: 13px; margin-bottom: 15px; } .prs-trusted__heading > span { flex: 0 0 auto; font-family: inherit; font-size: 9px; font-weight: 700; line-height: 1.2; letter-spacing: 1.2px; text-transform: uppercase; color: var(--prs-grey); } .prs-trusted__heading-line { flex: 1; height: 1px; background: linear-gradient( 90deg, rgba(101, 97, 92, 0.18), rgba(101, 97, 92, 0.02) ); } .prs-trusted__logos { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); align-items: center; gap: 12px 22px; } .prs-trusted__logo { display: flex; align-items: center; justify-content: center; min-width: 0; height: 68px; padding: 6px 10px; } .prs-trusted__logo img { display: block; width: auto; height: auto; max-width: 100%; max-height: 48px; object-fit: contain; object-position: center; opacity: 1; image-rendering: auto; transition: transform 0.2s ease; } /* Optical balance */ .prs-trusted__logo.logo--trojan img { max-height: 46px; } .prs-trusted__logo.logo--npc img { max-height: 47px; } .prs-trusted__logo.logo--stratum img { max-height: 48px; } .prs-trusted__logo.logo--strabag img { max-height: 31px; } .prs-trusted__logo.logo--amtrak img { max-height: 45px; } .prs-trusted__logo.logo--fra img { max-height: 35px; } .prs-trusted__logo.logo--royal img { max-height: 56px; } .prs-trusted__logo.logo--wsp img { max-height: 40px; } .prs-trusted__logo.logo--unops img { max-height: 39px; } .prs-trusted__logo.logo--pkp img { max-height: 50px; } .prs-trusted__logo.logo--ancora img { max-height: 50px; } @media (hover: hover) { .prs-trusted__logo:hover img { transform: translateY(-1px); } } /* ======================================== TABLET ======================================== */ @media (max-width: 1024px) { .prs-auto-card { flex: 0 0 calc((100% - 12px) / 2); } .prs-trusted__logos { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px 20px; } .prs-trusted__logo { height: 58px; } } /* ======================================== MOBILE ======================================== */ @media (max-width: 767px) { .prs-auto-testimonials { overflow: visible; } .prs-auto-testimonials-track { gap: 10px; } .prs-auto-card { flex: 0 0 88%; padding: 18px; border-radius: 12px; } .prs-auto-company { font-size: 10.5px; } .prs-auto-proof { margin-bottom: 15px; padding: 11px 12px; } .prs-auto-proof strong { font-size: 15px; } .prs-auto-proof span { font-size: 10px; } .prs-auto-card blockquote { font-size: 13px; line-height: 1.5; } .prs-auto-source { margin-top: 17px; padding-top: 12px; } .prs-auto-bottom-row { margin-top: 11px; } .prs-auto-projects-link { font-size: 11px; } .prs-auto-controls { gap: 6px; } .prs-auto-nav { width: 29px; height: 29px; } .prs-auto-nav svg { width: 13px; height: 13px; } .prs-trusted { margin-top: 18px; padding: 15px 0 13px; } .prs-trusted__heading { margin-bottom: 10px; padding: 0 2px; } .prs-trusted__logos { display: flex; align-items: center; gap: 18px; width: 100%; overflow-x: auto; padding: 3px 2px 7px; scroll-snap-type: x proximity; scrollbar-width: none; -webkit-overflow-scrolling: touch; } .prs-trusted__logos::-webkit-scrollbar { display: none; } .prs-trusted__logo { flex: 0 0 132px; width: 132px; height: 58px; padding: 5px 7px; scroll-snap-align: start; } .prs-trusted__logo img { max-width: 120px; } } /* ======================================== VERY SMALL MOBILE ======================================== */ @media (max-width: 380px) { .prs-auto-card { flex-basis: 92%; } .prs-auto-bottom-row { gap: 12px; } .prs-auto-projects-link { font-size: 10.5px; } .prs-trusted__logo { flex-basis: 118px; width: 118px; } .prs-trusted__logo img { max-width: 108px; } } (function () { const sliders = document.querySelectorAll('.prs-auto-testimonials'); sliders.forEach(function (slider) { const track = slider.querySelector('.prs-auto-testimonials-track'); const cards = Array.from(slider.querySelectorAll('.prs-auto-card')); const prevButton = slider.querySelector('.prs-auto-prev'); const nextButton = slider.querySelector('.prs-auto-next'); if (!track || !cards.length) { return; } let currentPage = 0; let autoTimer = null; let userIsInteracting = false; function cardsPerView() { if (window.innerWidth <= 767) return 1; if (window.innerWidth = totalPages) page = 0; if (page < 0) page = totalPages - 1; currentPage = page; const index = currentPage * cardsPerView(); const targetCard = cards[index]; if (!targetCard) return; track.scrollTo({ left: targetCard.offsetLeft, behavior: 'smooth' }); } function startAutoplay() { stopAutoplay(); autoTimer = setInterval(function () { if (!userIsInteracting) { goToPage(currentPage + 1); } }, 5000); } function stopAutoplay() { if (autoTimer) { clearInterval(autoTimer); autoTimer = null; } } if (prevButton) { prevButton.addEventListener('click', function () { goToPage(currentPage - 1); startAutoplay(); }); } if (nextButton) { nextButton.addEventListener('click', function () { goToPage(currentPage + 1); startAutoplay(); }); } slider.addEventListener('mouseenter', function () { userIsInteracting = true; }); slider.addEventListener('mouseleave', function () { userIsInteracting = false; }); track.addEventListener('touchstart', function () { userIsInteracting = true; }, { passive: true }); track.addEventListener('touchend', function () { setTimeout(function () { userIsInteracting = false; }, 1500); }, { passive: true }); let scrollTimer; track.addEventListener('scroll', function () { clearTimeout(scrollTimer); scrollTimer = setTimeout(function () { const perView = cardsPerView(); let closestIndex = 0; let closestDistance = Infinity; cards.forEach(function (card, index) { const distance = Math.abs(card.offsetLeft - track.scrollLeft); if (distance < closestDistance) { closestDistance = distance; closestIndex = index; } }); currentPage = Math.round(closestIndex / perView); currentPage = Math.max(0, Math.min(currentPage, pageCount() - 1)); }, 100); }); document.addEventListener('visibilitychange', function () { if (document.hidden) { stopAutoplay(); } else { startAutoplay(); } }); let resizeTimer; window.addEventListener('resize', function () { clearTimeout(resizeTimer); resizeTimer = setTimeout(function () { currentPage = 0; track.scrollTo({ left: 0, behavior: 'auto' }); }, 150); }); startAutoplay(); }); })();
Trusted By
/* ========================================================== SETTINGS =========================================================== */ .prs-trusted-marquee { --trusted-red: #B91E39; --trusted-text: #65615C; width: 100%; overflow: hidden; padding: 17px 0 18px; border-top: 1px solid rgba(101,97,92,0.12); border-bottom: 1px solid rgba(101,97,92,0.12); background: linear-gradient( 90deg, rgba(185,30,57,0.015), rgba(255,255,255,0) 25%, rgba(255,255,255,0) 75%, rgba(185,30,57,0.015) ), #ffffff; font-family: inherit; } .prs-trusted-marquee *, .prs-trusted-marquee *::before, .prs-trusted-marquee *::after { box-sizing: border-box; } /* ========================================================== HEADING =========================================================== */ .prs-trusted-marquee__heading { display: flex; align-items: center; gap: 13px; margin-bottom: 12px; } .prs-trusted-marquee__heading > span { flex: 0 0 auto; font-size: 9px; font-weight: 700; line-height: 1.2; letter-spacing: 1.2px; text-transform: uppercase; color: var(--trusted-text); } .prs-trusted-marquee__line { flex: 1; height: 1px; background: linear-gradient( 90deg, rgba(101,97,92,0.18), rgba(101,97,92,0.02) ); } /* ========================================================== VIEWPORT =========================================================== */ .prs-trusted-marquee__viewport { position: relative; width: 100%; overflow: hidden; } /* Soft edge fade */ .prs-trusted-marquee__viewport::before, .prs-trusted-marquee__viewport::after { content: ""; position: absolute; z-index: 3; top: 0; bottom: 0; width: 45px; pointer-events: none; } .prs-trusted-marquee__viewport::before { left: 0; background: linear-gradient( 90deg, #ffffff, rgba(255,255,255,0) ); } .prs-trusted-marquee__viewport::after { right: 0; background: linear-gradient( 270deg, #ffffff, rgba(255,255,255,0) ); } /* ========================================================== MOVING TRACK =========================================================== */ .prs-trusted-marquee__track { display: flex; width: max-content; will-change: transform; animation: prsTrustedMove 32s linear infinite; } /* Pause when user is looking at logos */ .prs-trusted-marquee:hover .prs-trusted-marquee__track { animation-play-state: paused; } /* ========================================================== LOGO GROUP =========================================================== */ .prs-trusted-marquee__group { display: flex; align-items: center; flex: 0 0 auto; gap: 28px; padding-right: 28px; } /* ========================================================== LOGO CELL =========================================================== */ .prs-trusted-marquee__logo { display: flex; align-items: center; justify-content: center; flex: 0 0 145px; width: 145px; height: 62px; padding: 6px 8px; } /* ========================================================== LOGO IMAGE =========================================================== */ .prs-trusted-marquee__logo img { display: block; width: auto; height: auto; max-width: 130px; max-height: 70px; object-fit: contain; object-position: center; opacity: 1; image-rendering: auto; transition: transform 0.2s ease; } /* Slight hover detail */ @media (hover: hover) { .prs-trusted-marquee__logo:hover img { transform: translateY(-2px); } } /* ========================================================== SEAMLESS MOVEMENT =========================================================== */ @keyframes prsTrustedMove { from { transform: translateX(0); } to { transform: translateX(-50%); } } /* ========================================================== TABLET =========================================================== */ @media (max-width: 1024px) { .prs-trusted-marquee__group { gap: 24px; padding-right: 24px; } .prs-trusted-marquee__logo { flex-basis: 135px; width: 135px; height: 58px; } .prs-trusted-marquee__logo img { max-width: 120px; max-height: 43px; } } /* ========================================================== MOBILE =========================================================== */ @media (max-width: 767px) { .prs-trusted-marquee { padding: 14px 0 15px; } .prs-trusted-marquee__heading { margin-bottom: 9px; } .prs-trusted-marquee__group { gap: 20px; padding-right: 20px; } .prs-trusted-marquee__logo { flex-basis: 118px; width: 118px; height: 54px; padding: 5px; } .prs-trusted-marquee__logo img { max-width: 108px; max-height: 39px; } .prs-trusted-marquee__track { animation-duration: 27s; } .prs-trusted-marquee__viewport::before, .prs-trusted-marquee__viewport::after { width: 24px; } } /* ========================================================== REDUCED MOTION =========================================================== */ @media (prefers-reduced-motion: reduce) { .prs-trusted-marquee__track { animation: none; } .prs-trusted-marquee__viewport { overflow-x: auto; scrollbar-width: none; } .prs-trusted-marquee__viewport::-webkit-scrollbar { display: none; } } (function () { const marquees = document.querySelectorAll( '.prs-trusted-marquee' ); marquees.forEach( function (marquee) { const track = marquee.querySelector( '.prs-trusted-marquee__track' ); const group = marquee.querySelector( '.prs-trusted-marquee__group' ); if (!track || !group) { return; } /* ==================================================== LOAD ONLY REAL LOGO URLS Placeholder values stay invisible rather than showing broken-image icons. ===================================================== */ const images = group.querySelectorAll( 'img[data-src]' ); images.forEach( function (image) { const source = image.getAttribute( 'data-src' ); if ( source && !source.startsWith('PASTE-') ) { image.src = source; } else { image .closest( '.prs-trusted-marquee__logo' ) .style.display = 'none'; } } ); /* ==================================================== AUTOMATICALLY DUPLICATE THE LOGO ROW FOR THE SEAMLESS LOOP ===================================================== */ const duplicate = group.cloneNode( true ); duplicate.setAttribute( 'aria-hidden', 'true' ); track.appendChild( duplicate ); } ); })();
.prs-section-label { display: inline-flex; align-items: center; gap: 10px; } .prs-section-line { width: 30px; height: 1px; background: #B91E39; flex-shrink: 0; } .prs-section-text { font-family: inherit; font-size: 11px; font-weight: 600; line-height: 1.2; letter-spacing: 1.2px; text-transform: uppercase; color: #A82038; } @media (max-width: 767px) { .prs-section-line { width: 24px; } .prs-section-text { font-size: 10px; letter-spacing: 1px; } }

Common Questions About Geocell Solutions

Find clear answers to common questions about Neoloy® Tough-Cells, HDPE geocells, project-specific engineering, infill materials and installation support.

How are NPA material properties researched and validated?

The NPA material used in Neoloy® Tough-Cells is supported by decades of laboratory research, full-scale testing, field monitoring and published engineering studies. This work has evaluated critical material properties including stiffness, dimensional stability, creep resistance, deformation behavior and long-term performance. Testing and performance evaluation are conducted in accordance with applicable international standards and engineering guidance, including ASTM methods, ISO/TR guidance and recognized geotechnical and pavement engineering practices.

What is a geocell?

A geocell is a three-dimensional cellular confinement system used to stabilize soil and granular materials. Once filled, the cells restrict lateral movement of the infill, improve load distribution and create a more stable structural layer.

What is the difference between Neoloy® Tough-Cells and HDPE geocells?

Neoloy® Tough-Cells are engineered for demanding infrastructure where long-term stiffness, dimensional stability and structural performance are required. HDPE geocells are suited to less demanding applications where standard geocell performance is sufficient, such as low-traffic areas, slopes, channels and erosion-control applications.

Can local or recycled materials be used as infill?

Yes. Depending on the project design, Neoloy® Tough-Cells can enable the use of locally available, marginal or recycled materials as structural infill, reducing dependence on imported high-quality aggregates.

Does PRS provide project-specific engineering and design optimization?

Yes. For Neoloy® Tough-Cell projects, PRS engineers evaluate project conditions and optimize the solution according to loading, soil conditions, available materials, structural requirements and required service life.

Does PRS provide installation and technical support?

Yes. PRS provides technical guidance, installation training and on-site support when required, helping project teams implement Neoloy® Tough-Cells correctly and efficiently.

Explore All Frequently Asked Questions
/* ====================================================== PRS HOMEPAGE FAQ MODERN / MINIMAL / CUSTOM ====================================================== */ .prs-faq { width: 100%; --prs-red: #B91E39; --prs-dark: #303A49; --prs-grey: #34404E; --prs-border: rgba(101, 97, 92, 0.16); } /* ====================================================== MAIN CONTAINER ====================================================== */ .prs-faq .prs-faq-list { width: 100%; overflow: hidden; background: #ffffff; border: 1px solid var(--prs-border); border-radius: 14px; } /* ====================================================== FAQ ROW ====================================================== */ .prs-faq .prs-faq-item { margin: 0; padding: 0; background: #ffffff; border: 0; border-bottom: 1px solid var(--prs-border); } .prs-faq .prs-faq-item:last-child { border-bottom: 0; } /* ====================================================== SUMMARY / QUESTION ====================================================== */ .prs-faq .prs-faq-item summary { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 24px; width: 100%; min-height: 68px; padding: 20px 22px; box-sizing: border-box; cursor: pointer; list-style: none; background: #ffffff; transition: color 0.2s ease, padding-left 0.25s ease; } /* REMOVE DEFAULT DETAILS MARKER */ .prs-faq .prs-faq-item summary::-webkit-details-marker { display: none; } .prs-faq .prs-faq-item summary::marker { display: none; content: ""; } /* QUESTION */ .prs-faq .prs-faq-question { max-width: calc(100% - 48px); font-family: inherit; font-size: 15px; font-weight: 600; line-height: 1.4; letter-spacing: -0.1px; color: var(--prs-dark); transition: color 0.2s ease; } /* HOVER */ .prs-faq .prs-faq-item summary:hover .prs-faq-question { color: var(--prs-red); } /* ====================================================== CUSTOM PLUS ====================================================== */ .prs-faq .prs-faq-toggle { position: relative; width: 22px; height: 22px; flex: 0 0 22px; } /* HORIZONTAL LINE */ .prs-faq .prs-faq-toggle::before { content: ""; position: absolute; top: 50%; left: 3px; width: 16px; height: 1.5px; transform: translateY(-50%); border-radius: 2px; background: var(--prs-red); } /* VERTICAL LINE */ .prs-faq .prs-faq-toggle::after { content: ""; position: absolute; top: 3px; left: 50%; width: 1.5px; height: 16px; transform: translateX(-50%); border-radius: 2px; background: var(--prs-red); transition: transform 0.25s ease, opacity 0.25s ease; } /* ====================================================== ACTIVE / OPEN STATE ====================================================== */ .prs-faq .prs-faq-item[open] summary { padding-bottom: 12px; } .prs-faq .prs-faq-item[open] .prs-faq-question { color: var(--prs-red); } /* TURN + INTO − */ .prs-faq .prs-faq-item[open] .prs-faq-toggle::after { opacity: 0; transform: translateX(-50%) rotate(90deg); } /* MODERN ACTIVE DETAIL */ .prs-faq .prs-faq-item[open] summary::after { content: ""; position: absolute; left: 22px; bottom: 0; width: 32px; height: 1px; background: var(--prs-red); } /* ====================================================== ANSWER ====================================================== */ .prs-faq .prs-faq-answer { padding: 13px 68px 22px 22px; background: #ffffff; } .prs-faq .prs-faq-answer p { max-width: 920px; margin: 0; font-family: inherit; font-size: 13.5px; font-weight: 400; line-height: 1.65; color: var(--prs-grey); } /* ====================================================== FULL FAQ LINK ====================================================== */ .prs-faq .prs-faq-link { display: inline-flex; align-items: center; gap: 8px; margin-top: 18px; font-family: inherit; font-size: 12.5px; font-weight: 600; line-height: 1.3; color: var(--prs-red); text-decoration: none; transition: gap 0.2s ease, opacity 0.2s ease; } .prs-faq .prs-faq-link span { font-size: 16px; line-height: 1; transition: transform 0.2s ease; } .prs-faq .prs-faq-link:hover { gap: 11px; } .prs-faq .prs-faq-link:hover span { transform: translateX(2px); } /* ====================================================== ACCESSIBILITY ====================================================== */ .prs-faq .prs-faq-item summary:focus-visible { outline: 2px solid rgba(185, 30, 57, 0.30); outline-offset: -2px; } /* ====================================================== MOBILE ====================================================== */ @media (max-width: 767px) { .prs-faq .prs-faq-list { border-radius: 12px; } .prs-faq .prs-faq-item summary { min-height: 60px; gap: 16px; padding: 17px 17px; } .prs-faq .prs-faq-question { max-width: calc(100% - 38px); font-size: 14px; line-height: 1.4; } .prs-faq .prs-faq-toggle { width: 20px; height: 20px; flex-basis: 20px; } .prs-faq .prs-faq-toggle::before { left: 3px; width: 14px; } .prs-faq .prs-faq-toggle::after { top: 3px; height: 14px; } .prs-faq .prs-faq-item[open] summary { padding-bottom: 11px; } .prs-faq .prs-faq-item[open] summary::after { left: 17px; width: 28px; } .prs-faq .prs-faq-answer { padding: 12px 42px 19px 17px; } .prs-faq .prs-faq-answer p { font-size: 13px; line-height: 1.6; } .prs-faq .prs-faq-link { margin-top: 16px; font-size: 12px; } } (function () { const groups = document.querySelectorAll('.prs-faq'); groups.forEach(function (group) { const items = group.querySelectorAll('.prs-faq-item'); items.forEach(function (item) { item.addEventListener( 'toggle', function () { if (!item.open) return; items.forEach(function (other) { if (other !== item) { other.removeAttribute('open'); } }); } ); }); }); })();

Have a Challenging Soil or Load-Support Problem?

Share your project conditions, loading requirements, subgrade conditions, available materials and design objectives.
PRS engineers can help determine the right geocell for your project.

/* ===================================================== PRS FLOATING ADVISOR HUB ===================================================== */ .prs-advisor-hub { --prs-red: #B91E39; --prs-red-hover: #A91A34; --prs-dark: #303A49; --prs-grey: #65615C; --prs-light-border: rgba(48, 58, 73, 0.12); --prs-light-border-strong: rgba(185, 30, 57, 0.24); --prs-panel-bg: rgba(255, 255, 255, 0.96); position: fixed; right: 24px; bottom: 24px; z-index: 9998; display: flex; flex-direction: column; align-items: flex-end; font-family: inherit; } /* ===================================================== FLOATING TRIGGER ===================================================== */ .prs-advisor-trigger { position: relative; display: flex; align-items: center; width: 56px; height: 56px; padding: 0 16px; overflow: hidden; border: 1px solid rgba(48, 58, 73, 0.12); border-radius: 28px; background: linear-gradient( 135deg, rgba(255,255,255,0.96) 0%, rgba(255,255,255,0.92) 100% ); color: var(--prs-dark); box-sizing: border-box; cursor: pointer; box-shadow: 0 10px 30px rgba(48, 58, 73, 0.12); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); transition: width 0.45s cubic-bezier(.2,.8,.2,1), border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease, background-color 0.25s ease; } .prs-advisor-hub.prs-advisor-intro .prs-advisor-trigger, .prs-advisor-hub.prs-advisor-open .prs-advisor-trigger { width: 215px; } .prs-advisor-trigger:hover { transform: translateY(-2px); border-color: rgba(185, 30, 57, 0.20); box-shadow: 0 14px 34px rgba(48, 58, 73, 0.16), 0 0 0 4px rgba(185, 30, 57, 0.05); } .prs-advisor-trigger-icon { display: flex; align-items: center; justify-content: center; width: 24px; height: 24px; flex: 0 0 24px; color: var(--prs-red); } .prs-advisor-trigger-icon svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; } .prs-advisor-trigger-text { display: block; min-width: 145px; margin-left: 11px; white-space: nowrap; opacity: 0; transform: translateX(7px); font-size: 12.5px; font-weight: 650; line-height: 1; color: var(--prs-dark); transition: opacity 0.25s ease 0.12s, transform 0.25s ease 0.12s; } .prs-advisor-hub.prs-advisor-intro .prs-advisor-trigger-text, .prs-advisor-hub.prs-advisor-open .prs-advisor-trigger-text { opacity: 1; transform: translateX(0); } /* ===================================================== STATUS DOT ===================================================== */ .prs-advisor-status { position: absolute; top: 5px; right: 5px; width: 8px; height: 8px; border: 2px solid #ffffff; border-radius: 50%; background: var(--prs-red); } /* ===================================================== CONTACT PANEL ===================================================== */ .prs-advisor-panel { position: absolute; right: 0; bottom: 68px; width: 360px; padding: 22px; box-sizing: border-box; border: 1px solid rgba(48, 58, 73, 0.10); border-radius: 18px; background: var(--prs-panel-bg); box-shadow: 0 18px 55px rgba(48, 58, 73, 0.16); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); visibility: hidden; opacity: 0; pointer-events: none; transform: translateY(10px) scale(0.985); transform-origin: bottom right; transition: opacity 0.25s ease, transform 0.30s cubic-bezier(.2,.8,.2,1), visibility 0.25s ease; } .prs-advisor-hub.prs-advisor-open .prs-advisor-panel { visibility: visible; opacity: 1; pointer-events: auto; transform: translateY(0) scale(1); } /* ===================================================== PANEL HEADER ===================================================== */ .prs-advisor-panel-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 18px; } .prs-advisor-eyebrow { display: block; margin-bottom: 6px; font-size: 8px; font-weight: 700; line-height: 1.2; letter-spacing: 1px; text-transform: uppercase; color: var(--prs-red); } .prs-advisor-heading h3 { margin: 0 0 4px 0; font-size: 17px; font-weight: 650; line-height: 1.2; letter-spacing: -0.25px; color: var(--prs-dark); } .prs-advisor-heading p { margin: 0; font-size: 12.5px; line-height: 1.4; color: var(--prs-grey); } /* ===================================================== CLOSE BUTTON ===================================================== */ .prs-advisor-close { display: flex; align-items: center; justify-content: center; width: 30px; height: 30px; flex: 0 0 30px; padding: 0; border: 0; border-radius: 9px; background: transparent; color: var(--prs-grey); cursor: pointer; transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease; } .prs-advisor-close:hover { background: rgba(185, 30, 57, 0.06); color: var(--prs-red); transform: scale(1.03); } .prs-advisor-close svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; } /* ===================================================== ACTIONS ===================================================== */ .prs-advisor-action { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; width: 100%; min-height: 60px; margin: 0 0 10px 0; padding: 12px 14px; box-sizing: border-box; border-radius: 14px; font-family: inherit; text-align: left; text-decoration: none !important; cursor: pointer; appearance: none; -webkit-appearance: none; transition: transform 0.22s ease, border-color 0.22s ease, background-color 0.22s ease, box-shadow 0.22s ease; } /* ===================================================== NEOLOY PRIMARY Lighter / premium / hover highlight ===================================================== */ .prs-advisor-action-primary { border: 1px solid rgba(185, 30, 57, 0.18); background: linear-gradient( 135deg, rgba(185, 30, 57, 0.07) 0%, rgba(185, 30, 57, 0.03) 100% ); color: var(--prs-dark) !important; box-shadow: inset 0 0 0 1px rgba(255,255,255,0.45); } .prs-advisor-action-primary::before { content: ""; position: absolute; left: 0; top: 11px; bottom: 11px; width: 3px; border-radius: 3px; background: var(--prs-red); } .prs-advisor-action-primary:hover { transform: translateY(-2px); border-color: rgba(185, 30, 57, 0.28); background: linear-gradient( 135deg, rgba(185, 30, 57, 0.10) 0%, rgba(185, 30, 57, 0.045) 100% ); box-shadow: 0 10px 24px rgba(48, 58, 73, 0.08), 0 0 0 4px rgba(185, 30, 57, 0.05); } /* ===================================================== HDPE + EMAIL ===================================================== */ .prs-advisor-action-secondary, .prs-advisor-action-email { border: 1px solid rgba(48, 58, 73, 0.10); background: #ffffff; color: var(--prs-dark) !important; } .prs-advisor-action-secondary:hover, .prs-advisor-action-email:hover { transform: translateY(-2px); border-color: rgba(185, 30, 57, 0.18); background: linear-gradient( 135deg, rgba(185, 30, 57, 0.025) 0%, rgba(255,255,255,1) 100% ); box-shadow: 0 10px 24px rgba(48, 58, 73, 0.07); } /* ===================================================== ACTION ICONS ===================================================== */ .prs-advisor-action-icon { display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; flex: 0 0 32px; border-radius: 10px; } .prs-advisor-action-primary .prs-advisor-action-icon { background: rgba(185, 30, 57, 0.10); color: var(--prs-red); } .prs-advisor-action-secondary .prs-advisor-action-icon, .prs-advisor-action-email .prs-advisor-action-icon { background: rgba(185, 30, 57, 0.06); color: var(--prs-red); } .prs-advisor-action-icon svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.55; stroke-linecap: round; stroke-linejoin: round; } /* ===================================================== ACTION COPY ===================================================== */ .prs-advisor-action-content { display: flex; flex-direction: column; min-width: 0; } .prs-advisor-action-label { display: block; margin-bottom: 3px; font-size: 7.5px; font-weight: 700; line-height: 1.2; letter-spacing: 0.75px; text-transform: uppercase; opacity: 0.72; } .prs-advisor-action-content strong { display: block; font-size: 12.8px; font-weight: 650; line-height: 1.25; color: inherit; } .prs-advisor-arrow { font-size: 15px; line-height: 1; color: inherit; transition: transform 0.2s ease, color 0.2s ease; } .prs-advisor-action:hover .prs-advisor-arrow { transform: translateX(3px); color: var(--prs-red); } /* ===================================================== SOCIAL AREA ===================================================== */ .prs-advisor-social { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-top: 18px; padding-top: 16px; border-top: 1px solid rgba(48, 58, 73, 0.09); } .prs-advisor-social-heading { font-size: 10px; font-weight: 600; color: var(--prs-grey); white-space: nowrap; } .prs-advisor-social-links { display: flex; align-items: center; gap: 8px; } /* ===================================================== SOCIAL BUTTONS ===================================================== */ .prs-social-button { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; border: 1px solid rgba(48, 58, 73, 0.10); border-radius: 10px; background: #ffffff; text-decoration: none !important; box-sizing: border-box; transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease; } .prs-social-button:hover { transform: translateY(-2px); border-color: rgba(48, 58, 73, 0.18); box-shadow: 0 8px 18px rgba(48, 58, 73, 0.08); } .prs-social-button svg { width: 18px; height: 18px; } /* BRAND COLORS */ .prs-linkedin { color: #0A66C2 !important; } .prs-instagram { color: #E1306C !important; } /* ===================================================== FOCUS ===================================================== */ .prs-advisor-trigger:focus-visible, .prs-advisor-action:focus-visible, .prs-advisor-close:focus-visible, .prs-social-button:focus-visible { outline: 2px solid rgba(185, 30, 57, 0.30); outline-offset: 2px; } /* ===================================================== TABLET ===================================================== */ @media (max-width: 1024px) { .prs-advisor-hub { right: 20px; bottom: 20px; } } /* ===================================================== MOBILE ===================================================== */ @media (max-width: 767px) { .prs-advisor-hub { right: 15px; bottom: 15px; } .prs-advisor-trigger, .prs-advisor-hub.prs-advisor-intro .prs-advisor-trigger, .prs-advisor-hub.prs-advisor-open .prs-advisor-trigger { width: 54px; height: 54px; padding: 0 14px; border-radius: 50%; } .prs-advisor-trigger-text { display: none; } .prs-advisor-trigger-icon { width: 21px; height: 21px; flex-basis: 21px; } .prs-advisor-trigger-icon svg { width: 21px; height: 21px; } .prs-advisor-panel { position: fixed; right: 14px; left: 14px; bottom: 76px; width: auto; padding: 19px; border-radius: 18px; } .prs-advisor-heading h3 { font-size: 17px; } .prs-advisor-action { min-height: 58px; padding: 11px 12px; } .prs-advisor-action-content strong { font-size: 12px; } } /* ===================================================== VERY SMALL MOBILE ===================================================== */ @media (max-width: 380px) { .prs-advisor-panel { right: 10px; left: 10px; padding: 17px; } .prs-advisor-action { gap: 9px; } } /* ===================================================== REDUCED MOTION ===================================================== */ @media (prefers-reduced-motion: reduce) { .prs-advisor-hub *, .prs-advisor-hub *::before, .prs-advisor-hub *::after { transition: none !important; animation: none !important; } } (function () { /* ===================================================== ELEMENTS ===================================================== */ const hub = document.getElementById( 'prsAdvisorHub' ); const trigger = document.getElementById( 'prsAdvisorTrigger' ); const panel = document.getElementById( 'prsAdvisorPanel' ); const closeButton = document.getElementById( 'prsAdvisorClose' ); if ( !hub || !trigger || !panel ) { return; } /* ===================================================== PANEL OPEN ===================================================== */ function openAdvisorHub() { hub.classList.add( 'prs-advisor-open' ); hub.classList.add( 'prs-advisor-intro' ); trigger.setAttribute( 'aria-expanded', 'true' ); panel.setAttribute( 'aria-hidden', 'false' ); } /* ===================================================== PANEL CLOSE ===================================================== */ function closeAdvisorHub() { hub.classList.remove( 'prs-advisor-open' ); trigger.setAttribute( 'aria-expanded', 'false' ); panel.setAttribute( 'aria-hidden', 'true' ); } /* ===================================================== MAIN FLOATING BUTTON ===================================================== */ trigger.addEventListener( 'click', function () { if ( hub.classList.contains( 'prs-advisor-open' ) ) { closeAdvisorHub(); } else { openAdvisorHub(); } } ); /* ===================================================== CLOSE BUTTON ===================================================== */ if (closeButton) { closeButton.addEventListener( 'click', closeAdvisorHub ); } /* ===================================================== FIND CLICKABLE ELEMENT INSIDE ELEMENTOR BUTTON ===================================================== */ function getElementorNativeButton(cssId) { const element = document.getElementById(cssId); if (!element) { console.warn( 'PRS: Elementor trigger not found: #' + cssId ); return null; } if ( element.matches( 'a.elementor-button, a[href], button' ) ) { return element; } const clickable = element.querySelector( 'a.elementor-button, a[href], button' ); if (!clickable) { console.warn( 'PRS: No clickable Elementor button found inside #' + cssId ); return null; } return clickable; } /* ===================================================== ACTIVATE NATIVE ELEMENTOR POPUP ===================================================== */ function activateNativePopup(cssId) { const nativeButton = getElementorNativeButton(cssId); if (!nativeButton) { return; } closeAdvisorHub(); window.setTimeout( function () { nativeButton.click(); }, 80 ); } /* ===================================================== NEOLOY ===================================================== */ const neoloyButton = document.getElementById( 'prsNeoloyRequest' ); if (neoloyButton) { neoloyButton.addEventListener( 'click', function () { activateNativePopup( 'prs-neoloy-native-trigger' ); } ); } /* ===================================================== HDPE ===================================================== */ const hdpeButton = document.getElementById( 'prsHdpeRequest' ); if (hdpeButton) { hdpeButton.addEventListener( 'click', function () { activateNativePopup( 'prs-hdpe-native-trigger' ); } ); } /* ===================================================== CLICK OUTSIDE PANEL ===================================================== */ document.addEventListener( 'click', function (event) { if ( !hub.contains(event.target) && hub.classList.contains( 'prs-advisor-open' ) ) { closeAdvisorHub(); } } ); /* ===================================================== ESCAPE KEY ===================================================== */ document.addEventListener( 'keydown', function (event) { if ( event.key === 'Escape' && hub.classList.contains( 'prs-advisor-open' ) ) { closeAdvisorHub(); trigger.focus(); } } ); /* ===================================================== GENTLE INTRO ===================================================== */ window.setTimeout( function () { hub.classList.add( 'prs-advisor-intro' ); }, 2800 ); /* ===================================================== RETURN TO SMALL ICON ===================================================== */ window.setTimeout( function () { if ( !hub.classList.contains( 'prs-advisor-open' ) ) { hub.classList.remove( 'prs-advisor-intro' ); } }, 9500 ); })();

Neoloy Tough-Cells Request

Error: Formulario de contacto no encontrado.

HDPE Geocells Request

Error: Formulario de contacto no encontrado.