NDAA Security Cameras

/* ============================================================
SHS DESIGN SYSTEM v2.2 — commercial polish + conversion refinement
============================================================ */

/* === Tokens === */
:root {
–shs-ink: #0F1422;
–shs-ink-2: #1A2138;
–shs-ink-3: #232B43;
–shs-steel: #5C7290;
–shs-steel-light: #8AA0BC;
–shs-steel-dark: #2F3D52;
–shs-line: #2A3247;
–shs-line-on-light: #DDE2EA;
–shs-line-on-light-strong: #C2C9D6;
–shs-white: #FFFFFF;
–shs-paper: #F6F7FA;
–shs-text: #0F1422;
–shs-text-muted: #5A6276;
–shs-text-on-ink: #ECEFF5;
–shs-text-on-ink-muted: #9AA5BA;
–shs-mono: ui-monospace, SFMono-Regular, “SF Mono”, Menlo, Consolas, monospace;
–shs-shadow-card: 0 1px 2px rgba(15,20,34,0.04), 0 12px 28px -16px rgba(15,20,34,0.10);
}

/* === Page baseline === */
body, body.ast-separate-container, body.ast-plain-container {
font-family: ‘Inter’, system-ui, -apple-system, sans-serif;
color: var(–shs-text);
background: var(–shs-white);
-webkit-font-smoothing: antialiased;
}
body, .ast-container, .entry-content, .ast-row { margin: 0; }
.entry-content > .wp-block-html:not(:last-child) { margin: 0; }

/* === Astra HEADER overrides (tighter, enterprise) === */
header.site-header,
.ast-primary-header-bar.ast-primary-header.main-header-bar {
background: var(–shs-white) !important;
border-bottom: 1px solid var(–shs-line-on-light);
box-shadow: none !important;
position: relative;
}
.site-primary-header-wrap {
padding-top: 14px !important;
padding-bottom: 14px !important;
}
.ast-container { max-width: 1240px; }

.site-branding .site-title { font-family: ‘Manrope’, sans-serif !important; line-height: 1.1; }
.site-branding .site-title a {
font-family: ‘Manrope’, sans-serif !important;
font-size: 18px !important;
font-weight: 700 !important;
color: var(–shs-ink) !important;
letter-spacing: -0.014em;
text-decoration: none;
transition: color 0.12s ease;
}
.site-branding .site-title a:hover { color: var(–shs-steel-dark) !important; }

.ast-builder-menu-1 .menu-item > a,
.main-header-bar .main-navigation ul .menu-item > a {
font-family: ‘Inter’, sans-serif !important;
font-size: 13.5px !important;
font-weight: 500 !important;
color: var(–shs-ink) !important;
letter-spacing: 0.018em;
padding: 14px 16px !important;
transition: color 0.12s ease;
text-transform: none;
position: relative;
}
.ast-builder-menu-1 .menu-item > a:hover,
.main-header-bar .menu-item > a:hover { color: var(–shs-steel) !important; }
.ast-builder-menu-1 .menu-item.current-menu-item > a,
.ast-builder-menu-1 .menu-item.current_page_item > a {
color: var(–shs-ink) !important;
font-weight: 600 !important;
}
.ast-builder-menu-1 .menu-item.current-menu-item > a::after,
.ast-builder-menu-1 .menu-item.current_page_item > a::after {
content: “”;
position: absolute;
left: 16px; right: 16px; bottom: 4px;
height: 1.5px; background: var(–shs-steel);
}

/* Hide Astra below-footer (we ship our own footer) */
.site-below-footer-wrap { display: none !important; }

/* === Section system === */
.shs { font-family: ‘Inter’, system-ui, sans-serif; }
.shs-section { padding: 120px 24px; font-family: ‘Inter’, sans-serif; position: relative; }
.shs-section–ink { background: var(–shs-ink); color: var(–shs-text-on-ink); }
.shs-section–paper { background: var(–shs-paper); color: var(–shs-text); }
.shs-section–white { background: var(–shs-white); color: var(–shs-text); }
.shs-section–credibility { padding: 36px 24px; background: var(–shs-white); border-bottom: 1px solid var(–shs-line-on-light); }
.shs-container { max-width: 1200px; margin: 0 auto; }
.shs-narrow { max-width: 880px; }

/* Eyebrow */
.shs-eyebrow {
font-family: var(–shs-mono); font-size: 11.5px; font-weight: 500;
letter-spacing: 0.2em; text-transform: uppercase;
color: var(–shs-steel-light); margin: 0 0 22px; display: inline-block;
}
.shs-section–paper .shs-eyebrow,
.shs-section–white .shs-eyebrow,
.shs-section–credibility .shs-eyebrow { color: var(–shs-steel); }
.shs-eyebrow::before { content: “// “; opacity: 0.6; }

/* Headings — tighter, more enterprise */
.shs-h1 {
font-family: ‘Manrope’, sans-serif; font-size: clamp(40px, 5.4vw, 66px);
font-weight: 700; line-height: 1.02; letter-spacing: -0.028em;
margin: 0 0 28px; max-width: 16ch;
}
.shs-h1–wide { max-width: 22ch; }
.shs-h2 {
font-family: ‘Manrope’, sans-serif; font-size: clamp(28px, 3.2vw, 42px);
font-weight: 700; line-height: 1.1; letter-spacing: -0.022em;
margin: 0 0 18px; max-width: 22ch;
}
.shs-h3 {
font-family: ‘Manrope’, sans-serif; font-size: 19px; font-weight: 700;
line-height: 1.3; letter-spacing: -0.008em; margin: 0 0 10px; color: var(–shs-text);
}
.shs-section–ink .shs-h3 { color: var(–shs-white); }

/* Body */
.shs-lead {
font-size: clamp(17px, 1.35vw, 19px); line-height: 1.55; max-width: 680px;
margin: 0 0 40px; font-weight: 400;
}
.shs-section–ink .shs-lead { color: var(–shs-text-on-ink); opacity: 0.95; }
.shs-body { font-size: 16px; line-height: 1.65; color: var(–shs-text-muted); margin: 0; }
.shs-section–ink .shs-body { color: var(–shs-text-on-ink-muted); }

.shs-rule { width: 56px; height: 2px; background: var(–shs-steel); margin: 0 0 28px; border: 0; }
.shs-section–ink .shs-rule { background: var(–shs-steel-light); }

/* === Buttons — slightly larger, sharper === */
.shs-cta-row { display: flex; gap: 14px; flex-wrap: wrap; align-items: center; }
.shs-btn {
display: inline-flex; align-items: center; gap: 10px;
padding: 17px 32px; font-family: ‘Inter’, sans-serif;
font-size: 15.5px; font-weight: 600; text-decoration: none;
border-radius: 2px;
transition: background 0.14s ease, color 0.14s ease, border-color 0.14s ease;
cursor: pointer; border: 1.5px solid transparent;
letter-spacing: 0.01em; line-height: 1;
}
.shs-btn–primary { background: var(–shs-white); color: var(–shs-ink); }
.shs-btn–primary:hover { background: var(–shs-paper); color: var(–shs-ink); }
.shs-btn–ghost-light { background: transparent; color: var(–shs-white); border-color: rgba(255,255,255,0.32); }
.shs-btn–ghost-light:hover { border-color: var(–shs-white); background: rgba(255,255,255,0.06); color: var(–shs-white); }
.shs-btn–steel { background: var(–shs-steel); color: var(–shs-white); }
.shs-btn–steel:hover { background: var(–shs-steel-dark); color: var(–shs-white); }
.shs-btn–ink { background: var(–shs-ink); color: var(–shs-white); }
.shs-btn–ink:hover { background: var(–shs-ink-2); color: var(–shs-white); }
.shs-btn–ghost-ink { background: transparent; color: var(–shs-ink); border-color: var(–shs-ink); }
.shs-btn–ghost-ink:hover { background: var(–shs-ink); color: var(–shs-white); }
.shs-btn__arrow { font-family: var(–shs-mono); transition: transform 0.14s ease; font-weight: 400; }
.shs-btn:hover .shs-btn__arrow { transform: translateX(3px); }

/* === Trust strip (under hero CTAs) === */
.shs-trust-strip {
margin-top: 52px; padding-top: 28px; border-top: 1px solid var(–shs-line);
display: flex; gap: 28px 32px; flex-wrap: wrap;
font-family: var(–shs-mono); font-size: 11.5px; letter-spacing: 0.16em;
text-transform: uppercase; color: var(–shs-steel-light);
}
.shs-trust-strip__item { display: flex; align-items: center; gap: 10px; }
.shs-trust-strip__item::before { content: “”; width: 5px; height: 5px; background: var(–shs-steel); display: inline-block; transform: rotate(45deg); }

/* === Credibility strip (between hero and categories) === */
.shs-credibility-row {
display: flex; align-items: center; gap: 14px 28px; flex-wrap: wrap; justify-content: center;
font-family: var(–shs-mono); font-size: 11.5px; letter-spacing: 0.18em;
text-transform: uppercase; color: var(–shs-text-muted);
}
.shs-credibility-row strong {
font-family: ‘Inter’, sans-serif; font-size: 13px; font-weight: 600;
color: var(–shs-ink); letter-spacing: 0.04em; margin-right: 8px;
}
.shs-credibility-row span { position: relative; padding-right: 28px; }
.shs-credibility-row span:not(:last-child)::after {
content: “”; position: absolute; right: 0; top: 50%; transform: translateY(-50%);
width: 4px; height: 4px; background: var(–shs-steel-light); border-radius: 0;
}

/* === Category cards — stronger hover, cleaner border === */
.shs-cat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; margin-top: 52px; }
.shs-cat-card {
background: var(–shs-white); border: 1px solid var(–shs-line-on-light);
border-radius: 2px; padding: 36px 28px 28px;
transition: border-color 0.16s ease, box-shadow 0.16s ease, transform 0.16s ease;
display: flex; flex-direction: column; text-decoration: none; color: inherit;
position: relative;
}
.shs-cat-card::before {
content: “”; position: absolute; top: 0; left: 0; right: 0;
height: 2px; background: transparent; transition: background 0.16s ease;
}
.shs-cat-card:hover {
border-color: var(–shs-steel);
box-shadow: var(–shs-shadow-card);
transform: translateY(-2px);
}
.shs-cat-card:hover::before { background: var(–shs-steel); }
.shs-cat-card__num {
font-family: var(–shs-mono); font-size: 11px; font-weight: 500;
letter-spacing: 0.18em; color: var(–shs-steel); margin: 0 0 18px; text-transform: uppercase;
}
.shs-cat-card .shs-h3 { margin-bottom: 10px; font-size: 19px; }
.shs-cat-card__desc { font-size: 14.5px; line-height: 1.6; color: var(–shs-text-muted); margin: 0 0 24px; flex-grow: 1; }
.shs-cat-card__cta {
font-family: ‘Inter’, sans-serif; font-size: 13px; font-weight: 600;
color: var(–shs-ink); align-self: flex-start;
border-bottom: 1.5px solid var(–shs-ink); padding-bottom: 2px;
letter-spacing: 0.02em; transition: color 0.14s, border-color 0.14s;
text-transform: uppercase;
}
.shs-cat-card:hover .shs-cat-card__cta { color: var(–shs-steel); border-color: var(–shs-steel); }

/* === Why Buy grid === */
.shs-why-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); gap: 52px 60px; margin-top: 56px; }
.shs-why__num {
font-family: ‘Manrope’, sans-serif; font-size: 56px; font-weight: 700;
line-height: 1; color: var(–shs-steel-light); letter-spacing: -0.04em;
margin: 0 0 16px; display: block; opacity: 0.85;
}
.shs-why__title {
font-family: ‘Manrope’, sans-serif; font-size: 18.5px; font-weight: 700;
line-height: 1.3; color: var(–shs-white); margin: 0 0 12px; letter-spacing: -0.008em;
}
.shs-why__desc { font-size: 14.5px; line-height: 1.62; color: var(–shs-text-on-ink-muted); margin: 0; }

/* === Featured solutions === */
.shs-fs-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; margin-top: 52px; }
.shs-fs-card {
background: var(–shs-white); border: 1px solid var(–shs-line-on-light);
border-top: 3px solid var(–shs-steel); border-radius: 2px;
padding: 32px 28px 28px;
transition: box-shadow 0.16s ease, transform 0.16s ease;
}
.shs-fs-card:hover {
box-shadow: var(–shs-shadow-card);
transform: translateY(-2px);
}
.shs-fs-card .shs-h3 { font-size: 18px; margin-bottom: 14px; }
.shs-fs-card__list {
font-family: var(–shs-mono); font-size: 13px; line-height: 1.95;
color: var(–shs-text-muted); margin: 0 0 22px; padding: 0; list-style: none;
}
.shs-fs-card__list li { padding-left: 18px; position: relative; }
.shs-fs-card__list li::before { content: “—”; position: absolute; left: 0; color: var(–shs-steel); }
.shs-fs-card__link {
font-family: ‘Inter’, sans-serif; font-size: 13px; font-weight: 600;
color: var(–shs-steel); text-decoration: none; letter-spacing: 0.02em; text-transform: uppercase;
}
.shs-fs-card__link:hover { color: var(–shs-ink); }
.shs-fs-card__link::after { content: ” →”; font-family: var(–shs-mono); }

/* === Final CTA === */
.shs-cta-final { max-width: 720px; margin: 0 auto; text-align: center; }
.shs-cta-final .shs-eyebrow { color: var(–shs-steel); }
.shs-cta-final .shs-cta-row { justify-content: center; margin-top: 10px; }
.shs-section-head { display: flex; flex-direction: column; align-items: flex-start; max-width: 760px; }

/* === Mobile === */
@media (max-width: 900px) {
.shs-section { padding: 80px 22px; }
.shs-h1 { font-size: 36px; max-width: 100%; }
.shs-h2 { font-size: 26px; }
.shs-trust-strip { gap: 16px; margin-top: 40px; padding-top: 22px; }
.shs-trust-strip__item { font-size: 11px; }
.shs-credibility-row { gap: 10px 20px; flex-direction: column; }
.shs-credibility-row span { padding-right: 0; }
.shs-credibility-row span::after { display: none !important; }
.shs-cat-grid { gap: 12px; margin-top: 40px; }
.shs-why-grid { gap: 40px; margin-top: 40px; }
.shs-why__num { font-size: 48px; }
.shs-btn { padding: 15px 24px; font-size: 14.5px; }
.ast-builder-menu-1 .menu-item > a { padding: 12px 12px !important; font-size: 13px !important; }
.site-branding .site-title a { font-size: 17px !important; }
}
@media (max-width: 560px) {
.shs-cat-grid { grid-template-columns: 1fr; }
.shs-trust-strip { flex-direction: column; gap: 12px; }
}

// NDAA Cameras · Commercial Catalog
Section 889-screened commercial surveillance equipment for government, institutional, and enterprise installations. AI analytics-ready models, full NVR systems, and the camera body styles installers actually deploy.

// What We Carry
NDAA Cameras hardware on the shelf.

NDAA Compliant Bullet Cameras
2MP through 8MP fixed and varifocal bullet cameras with commercial IP-rated housings.

NDAA Compliant Dome Cameras
Indoor and outdoor domes including vandal-rated IK10 models for public and exposed environments.

PTZ & Multi-sensor Cameras
Pan-tilt-zoom and multi-imager cameras for large-area coverage on parking lots, perimeters, and warehouses.

NVRs & Storage
4, 8, 16, and 32-channel NVRs with RAID-capable models for higher channel counts and longer retention.

AI Analytics-Ready Models
Cameras supporting line-crossing, intrusion detection, people counting, and license plate recognition.

Commercial Mounts & Housings
Pole mounts, parapet mounts, junction boxes, and weather housings rated for Eastern Ontario climates.

// Compatibility
Brands & platforms we stock for.

We stock ndaa cameras hardware compatible with the integrator-standard platforms our customers actually deploy: Hanwha Vision, Hikvision (verified non-restricted SKUs), Axis Communications, i-PRO, Uniview (NDAA models), ACTi. Not sure if a specific SKU fits your existing system? Ask us before you order.

// Bulk Pricing & Technical Guidance
Need bulk pricing on ndaa cameras?
Tell us the SKUs, quantities, and timeline. We come back with project pricing, lead times, and compatibility checks before you order.

Request Bulk Quote →
Ask a Technical Question

Scroll to Top