Alarm Hardware

/* ============================================================
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; }
}

// Alarm Hardware ยท Commercial Catalog
Commercial intrusion detection hardware โ€” panels, sensors, and the field devices that go on the wall. Standards-compliant equipment for monitored, self-contained, and hybrid installations.

// What We Carry
Alarm Hardware hardware on the shelf.

Commercial Control Panels
16, 32, 64, and 128-zone panels for small commercial through institutional installations.

Motion Sensors & PIRs
Indoor PIRs, dual-tech motion detectors, mirror-optic detectors, and pet-immune models.

Door & Window Contacts
Surface-mount, recessed, overhead-door, and wide-gap contacts in standard and high-security configurations.

Glass Break & Vibration Detectors
Acoustic glass break detectors and shock/vibration sensors for vault doors and high-value rooms.

Sirens, Strobes & Bells
Indoor sirens, outdoor weatherproof sounders, strobes, and combination sounder-strobe devices.

Keypads, Modules & Expansion
LCD keypads, zone expanders, hardwired/wireless receivers, and communicator modules.

// Compatibility
Brands & platforms we stock for.

We stock alarm hardware hardware compatible with the integrator-standard platforms our customers actually deploy: DSC PowerSeries Neo, Honeywell Vista, Bosch Solution, DMP, Resideo, Paradox, Tycoonics. Not sure if a specific SKU fits your existing system? Ask us before you order.

// Bulk Pricing & Technical Guidance
Need bulk pricing on alarm hardware?
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