/* ============================================
   PARASYN — SPECIALTY PAGE BODY STYLESHEET
   For the dark "elevated tier" body content on specialty pages
   (Cyber, OT Sentinel, Canary Sentinel). Header/footer stay on
   the standard light site.css — only the body uses this.
   ============================================ */

.specialty-body {
  --sp-primary: #0E2A47;
  --sp-accent: #00AEEF;
  --sp-accent-2: #4DD0FF;
  --sp-dark: #08121D;
  --sp-dark-2: #0D1A29;
  --sp-dark-3: #122233;
  --sp-light: #C9D9E8;
  --sp-muted: #8FA8BF;
  --sp-white: #FFFFFF;
  --sp-success: #2FD39B;
  background: var(--sp-dark);
  color: var(--sp-white);
  font-family: 'Open Sans', sans-serif;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  width: 100vw;
}
.specialty-body * { box-sizing: border-box; }
.specialty-body section, .specialty-body .sp-cta-section { padding: 90px 0; }

/* Hero */
.sp-hero { min-height: 480px; display:flex; flex-direction:column; justify-content:center; padding:100px 0 60px; position:relative; overflow:hidden; }
.sp-hero-bg { position:absolute; inset:0; background-size:cover; background-position:center; }
.sp-hero-bg::after { content:''; position:absolute; inset:0; background:linear-gradient(135deg, rgba(8,18,29,0.9) 0%, rgba(14,42,71,0.84) 42%, rgba(11,24,39,0.92) 100%); }
.sp-hero-grid-overlay { position:absolute; inset:0; background-image:linear-gradient(rgba(0,174,239,0.08) 1px,transparent 1px),linear-gradient(90deg,rgba(0,174,239,0.08) 1px,transparent 1px); background-size:60px 60px; }
.sp-hero-content { position:relative; z-index:2; max-width:760px; }
.sp-hero > .col { position:relative; z-index:2; }
.sp-page-h1 { font-family:'Open Sans',sans-serif; font-weight:800; text-transform:uppercase; letter-spacing:-0.01em; font-size:clamp(28px,4vw,42px); line-height:1.15; color:#fff; margin:0 0 14px; }
.sp-page-h2 { font-size:14px; font-weight:400; letter-spacing:0.02em; color:var(--sp-light); margin:0 0 28px; }
.sp-hero-sub { font-size:18px; font-weight:300; line-height:1.65; color:var(--sp-light); margin:0; max-width:640px; }

/* Stat bar in hero */
.sp-hero-stats { position:relative; z-index:2; display:flex; gap:0; margin-top:36px; border-top:1px solid rgba(255,255,255,0.08); padding-top:32px; flex-wrap:wrap; }
.sp-stat-item { flex:1; padding-right:40px; border-right:1px solid rgba(255,255,255,0.08); margin-right:40px; min-width:130px; }
.sp-stat-item:last-child { border-right:none; margin-right:0; padding-right:0; }
.sp-stat-num { font-size:38px; font-weight:900; color:var(--sp-white); line-height:1; }
.sp-stat-num span { color:var(--sp-accent); }
.sp-stat-label { font-size:14px; color:var(--sp-muted); margin-top:6px; letter-spacing:0.03em; }

/* Ticker */
.sp-ticker { background:linear-gradient(90deg,var(--sp-primary),var(--sp-accent)); padding:11px 0; overflow:hidden; }
.sp-ticker-inner { display:flex; gap:44px; white-space:nowrap; animation:spTicker 22s linear infinite; }
@keyframes spTicker { 0%{transform:translateX(0);} 100%{transform:translateX(-50%);} }
.sp-ticker-item { font-size:14px; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; color:rgba(255,255,255,0.95); flex-shrink:0; }
.sp-ticker-sep { color:rgba(255,255,255,0.45); flex-shrink:0; }

/* Section heads */
.sp-label { font-size:14px; font-weight:700; letter-spacing:0.18em; text-transform:uppercase; color:var(--sp-accent); margin-bottom:18px; }
.sp-title { font-weight:900; text-transform:uppercase; letter-spacing:-0.01em; color:#e23b3b; font-size:clamp(26px,3.4vw,38px); line-height:1.12; margin:0 0 20px; }
.sp-body-text { font-size:18px; font-weight:300; line-height:1.65; color:var(--sp-light); max-width:620px; }
.specialty-body section.alt-bg { background: var(--sp-dark-2); }

/* Numbered colored blocks (used for driver / scope grids) */
.sp-block-grid { display:grid; gap:14px; }
.sp-block { border-radius:6px; padding:24px 22px; color:#fff; min-height:220px; display:flex; flex-direction:column; }
.sp-block-num { font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:32px; opacity:.55; margin-bottom:10px; }
.sp-block-title { font-size:16px; font-weight:700; text-transform:uppercase; letter-spacing:0.02em; margin-bottom:10px; }
.sp-block-desc { font-size:14px; line-height:1.5; opacity:.92; }
.sp-block-1 { background:#0E2A47; } .sp-block-2 { background:#12385F; } .sp-block-3 { background:#1A4A7A; } .sp-block-4 { background:#1a8fd1; } .sp-block-5 { background:#00AEEF; }

/* Card grid (value/service style) */
.sp-card-grid { display:grid; gap:1px; background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.06); }
.sp-card { background: var(--sp-dark-2); padding:30px 26px; }
.sp-card-title { font-size:16px; font-weight:800; text-transform:uppercase; letter-spacing:0.02em; margin-bottom:10px; color:#fff; }
.sp-card-desc { font-size:14.5px; line-height:1.55; color:var(--sp-muted); }

/* Data table (dark) */
.sp-table { border:1px solid rgba(255,255,255,0.1); border-radius:6px; overflow:hidden; width:100%; border-collapse:collapse; }
.sp-table th, .sp-table td { text-align:left; padding:15px 18px; font-size:14px; border-bottom:1px solid rgba(255,255,255,0.06); }
.sp-table th { font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:var(--sp-muted); font-weight:400; background:var(--sp-dark-2); }
.sp-table td { color:var(--sp-light); }
.sp-table td.strong { font-weight:700; color:#fff; }
.sp-table tr:last-child td { border-bottom:none; }

/* Alert / callout box */
.sp-alert { border:1px solid rgba(0,174,239,0.3); background:rgba(0,174,239,0.08); border-radius:6px; padding:24px 28px; display:flex; gap:18px; align-items:center; }
.sp-alert-icon { font-size:22px; flex-shrink:0; }
.sp-alert-title { font-size:15px; font-weight:700; text-transform:uppercase; letter-spacing:0.03em; margin-bottom:6px; color:#fff; }
.sp-alert-desc { font-size:14.5px; line-height:1.5; color:var(--sp-light); }

/* Light form card on dark body */
.sp-form-card { background:#fff; border-radius:8px; padding:36px; color:#18222f; max-width:640px; }
.sp-form-card .form-row label { color:#5c6876; }
.sp-form-card .form-row input, .sp-form-card .form-row select, .sp-form-card .form-row textarea { border:1px solid #d6dde4; background:#f8fafb; font-family: 'IBM Plex Sans', sans-serif; }

/* CTA band */
.sp-cta-band { background:linear-gradient(135deg,var(--sp-primary),var(--sp-accent)); padding:64px 0; }
.sp-cta-inner { display:flex; align-items:center; justify-content:space-between; gap:36px; flex-wrap:wrap; }
.sp-cta-title { font-size:clamp(24px,3.2vw,34px); font-weight:900; text-transform:uppercase; line-height:1.1; margin-bottom:8px; color:#fff; }
.sp-cta-sub { font-size:15px; opacity:.9; color:#fff; }
.sp-btn-white { background:#fff; color:var(--sp-primary); padding:15px 32px; font-size:14px; font-weight:800; letter-spacing:0.08em; text-transform:uppercase; border:none; border-radius:6px; text-decoration:none; display:inline-block; }

@media (max-width: 900px) {
  .sp-card-grid { grid-template-columns: 1fr 1fr !important; }
  .sp-block-grid { grid-template-columns: 1fr 1fr !important; }
}
@media (max-width: 600px) {
  .sp-card-grid, .sp-block-grid { grid-template-columns: 1fr !important; }
  .sp-cta-inner { text-align:center; justify-content:center; }
}
