/* ── PUBLIC SAFETY & 911 ───────────────────────────────────── */
.ps { position: relative; overflow: hidden; padding: 60px 0 140px; }
.ps__bg { position:absolute; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(900px 600px at 80% 12%, rgba(244,114,182,0.10), transparent 60%),
    radial-gradient(700px 500px at 22% 88%, rgba(59,130,246,0.06), transparent 60%); }
.ps .container { position:relative; z-index:1; }
.ps__hero { display:grid; grid-template-columns:1fr 1.18fr; gap:56px; align-items:center; margin-bottom:96px; }
.ps__copy h2.ps__title { font-family: var(--font-display); font-size: clamp(36px, 4.2vw, 56px); line-height:1.04; letter-spacing:-0.025em; color: var(--ink-100); margin: 18px 0 22px; }
.ps__lead { font-size:17px; line-height:1.6; color: var(--ink-70); max-width:560px; margin-bottom:32px; }
.ps__lead strong { color: var(--ink-100); font-weight:600; }
.ps__sig { display:flex; border-top:1px solid var(--hair); border-bottom:1px solid var(--hair); padding:22px 0; margin-bottom:24px; }
.ps__sig-item { flex:1; padding-right:22px; }
.ps__sig-item + .ps__sig-item { border-left:1px solid var(--hair); padding-left:22px; }
.ps__sig-num { font-family: var(--font-display); font-size:30px; font-weight:600; letter-spacing:-0.02em; color: var(--ink-100); line-height:1; }
.ps__sig-lab { font-family: var(--font-mono); font-size:10.5px; letter-spacing:0.14em; text-transform:uppercase; color: var(--ink-70); margin-top:8px; }
.ps__chips { display:flex; flex-wrap:wrap; gap:8px; }
.ps__chip { display:inline-flex; align-items:center; gap:8px; padding:6px 12px; font-family: var(--font-mono); font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color: var(--ink-80); border:1px solid var(--hair); border-radius:999px; background: rgba(255,255,255,0.015); }
.ps__chip-dot { width:6px; height:6px; border-radius:50%; background:#fda4af; box-shadow:0 0 8px #fda4af; animation: ps-dot 1.8s infinite; }
.ps__chip:nth-child(2) .ps__chip-dot { animation-delay:0.3s; }
.ps__chip:nth-child(3) .ps__chip-dot { animation-delay:0.6s; }
.ps__chip:nth-child(4) .ps__chip-dot { animation-delay:0.9s; }
@keyframes ps-dot { 0%,100%{opacity:1;} 50%{opacity:0.4;} }

/* Motion panel · 911 dispatch console */
.ps__motion { position:relative; padding:14px; }
.ps__panel { border:1px solid var(--hair); border-radius:14px; background: linear-gradient(180deg, rgba(8,13,24,0.96), rgba(8,13,24,0.86)); box-shadow: 0 30px 80px -30px rgba(0,0,0,0.6); overflow:hidden; }
.ps__panel-bar { display:flex; align-items:center; gap:10px; padding:14px 18px; border-bottom:1px solid var(--hair); background:rgba(255,255,255,0.02); }
.ps__panel-dot { width:10px; height:10px; border-radius:50%; flex-shrink:0; }
.ps__panel-dot--r { background:#ff5f57; } .ps__panel-dot--y { background:#febc2e; } .ps__panel-dot--g { background:#28c840; }
.ps__panel-name { margin-left:12px; font-family: var(--font-mono); font-size:12.5px; color: var(--ink-70); }
.ps__panel-pill { margin-left:auto; font-family: var(--font-mono); font-size:10.5px; letter-spacing:0.16em; text-transform:uppercase; color:#fda4af; border:1px solid rgba(244,114,182,0.45); border-radius:999px; padding:4px 10px; display:inline-flex; align-items:center; gap:6px; }
.ps__panel-pill::before { content:""; width:6px; height:6px; border-radius:50%; background:#fda4af; box-shadow:0 0 8px #fda4af; animation: ps-pulse 1.6s infinite; }
@keyframes ps-pulse { 0%,100%{opacity:1;} 50%{opacity:0.4;} }
.ps__mini { display:grid; grid-template-columns: 1fr; gap:1px; background:rgba(125,211,252,0.10); }
.ps__map-mini { aspect-ratio: 16/9; overflow:hidden; }
.ps__mini > div { background:rgba(8,13,24,0.85); padding:14px 16px; overflow:hidden; }
.ps__mini > .ps__map-mini { padding:0; }
.ps__mini h6 { font-family: var(--font-mono); font-size:9.5px; letter-spacing:0.18em; text-transform:uppercase; margin:0 0 10px; color:#fda4af; }
.ps__cad-row { display:grid; grid-template-columns: 50px 1fr auto; gap:8px; padding:7px 8px; border:1px solid rgba(125,211,252,0.10); border-radius:5px; background:rgba(8,13,24,0.5); margin-bottom:6px; align-items:center; }
.ps__cad-row b { color:var(--ink-100); }
.ps__cad-sev { font-family: var(--font-mono); font-size:8px; letter-spacing:0.16em; text-align:center; padding:3px 4px; border-radius:3px; }
.ps__cad-sev--c { color:#fda4af; background:rgba(244,114,182,0.14); }
.ps__cad-sev--h { color:#fcd34d; background:rgba(234,179,8,0.14); }
.ps__cad-sev--m { color:#93c5fd; background:rgba(59,130,246,0.14); }
.ps__cad-text { font-family: var(--font-mono); font-size:10px; color:var(--ink-90); }
.ps__cad-meta { font-family: var(--font-mono); font-size:9px; color: var(--ink-70); }
.ps__map-mini svg { display:block; width:100%; height:100%; }

/* Section heads */
.ps__section-head { margin: 0 0 48px; max-width: 880px; }
.ps__section-head--center { text-align:center; margin-left:auto; margin-right:auto; }

/* Generic split-layout panel · used for each capability section */
.ps__split { display:grid; grid-template-columns: 1.05fr 1fr; gap:0; border:1px solid var(--hair); border-radius:14px; overflow:hidden; background:rgba(8,13,24,0.5); margin-bottom:90px; }
.ps__split-bar { grid-column: 1/-1; display:flex; align-items:center; gap:10px; padding:14px 18px; border-bottom:1px solid var(--hair); background:rgba(255,255,255,0.02); }
.ps__split-bar .ps__panel-dot { display:inline-block; }
.ps__split-name { margin-left:10px; font-family: var(--font-mono); font-size:12.5px; color:var(--ink-70); }
.ps__split-pill { margin-left:auto; font-family: var(--font-mono); font-size:10.5px; letter-spacing:0.16em; text-transform:uppercase; color:#93c5fd; border:1px solid rgba(125,211,252,0.45); border-radius:999px; padding:4px 10px; }
.ps__split-l { padding: 24px 26px; border-right:1px solid var(--hair); background:rgba(255,255,255,0.012); }
.ps__split-r { padding: 24px 26px; }
.ps__split-l h3 { font-family: var(--font-display); font-size:24px; font-weight:600; color:var(--ink-100); margin: 6px 0 12px; letter-spacing:-0.015em; line-height:1.15; }
.ps__split-l h3 em { font-style: normal; color:#fda4af; }
.ps__split-l p { font-size:14px; line-height:1.6; color: var(--ink-70); margin: 0 0 14px; max-width: 460px; }
.ps__split-l p strong { color: var(--ink-100); font-weight:500; }
.ps__split-bullets { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:8px; }
.ps__split-bullets li { display:grid; grid-template-columns: 16px 1fr; gap:8px; font-family: var(--font-mono); font-size:11.5px; color: var(--ink-80); align-items:start; line-height:1.4; }
.ps__split-bullets li::before { content:"▸"; color:#fda4af; }

/* Right side · capability-specific content */
.ps__map-bg { background: linear-gradient(180deg, rgba(7,12,24,1), rgba(11,21,40,1)); aspect-ratio: auto; min-height: 440px; position: relative; overflow:hidden; display:flex; }
.ps__map-bg svg { display:block; width:100%; height:100%; flex:1 1 auto; }

/* CAD/RMS bridge mini */
.ps__bridge { display:grid; grid-template-columns: 1fr 1fr; gap:14px; padding: 18px; }
.ps__bridge-card { padding:14px 14px; border:1px solid var(--hair); border-radius:10px; background:rgba(8,13,24,0.6); }
.ps__bridge-card h6 { font-family: var(--font-mono); font-size:9.5px; letter-spacing:0.18em; text-transform:uppercase; color:#93c5fd; margin:0 0 10px; }
.ps__bridge-row { display:flex; justify-content:space-between; font-family: var(--font-mono); font-size:10.5px; color:var(--ink-80); padding:5px 0; border-bottom:1px solid rgba(125,211,252,0.06); }
.ps__bridge-row:last-child { border-bottom:0; }
.ps__bridge-row b { color:var(--ink-100); }
.ps__bridge-pipe { grid-column: 1/-1; display:flex; align-items:center; gap:10px; padding:8px 6px; font-family: var(--font-mono); font-size:10px; letter-spacing:0.10em; color:#a7f3d0; }
.ps__bridge-pipe-line { flex:1; height:1px; background: linear-gradient(90deg, transparent, rgba(167,243,208,0.45), transparent); }

/* AI Dispatch mini */
.ps__ai { padding: 18px; display: flex; flex-direction: column; gap: 12px; background: linear-gradient(180deg, rgba(196,181,253,0.04), rgba(8,13,24,0.65)); }
.ps__ai h6 { font-family: var(--font-mono); font-size:9.5px; letter-spacing:0.18em; text-transform:uppercase; color:#c4b5fd; margin:0; }
.ps__ai-card { padding: 12px 14px; border:1px solid var(--hair); border-radius:8px; background:rgba(8,13,24,0.55); }
.ps__ai-card.ps__ai-rec { border-color: rgba(196,181,253,0.45); background: linear-gradient(180deg, rgba(196,181,253,0.06), rgba(8,13,24,0.55)); }
.ps__ai-meta { display:flex; align-items:center; gap:8px; margin-bottom:8px; }
.ps__ai-meta .ps__cad-sev { font-size:8.5px; padding:3px 6px; }
.ps__ai-id { font-family: var(--font-mono); font-size:9.5px; color: var(--ink-70); letter-spacing:0.10em; }
.ps__ai-title { font-family: var(--font-display); font-size:15px; font-weight:600; color:var(--ink-100); margin:0 0 4px; letter-spacing:-0.005em; }
.ps__ai-rec p { font-family: var(--font-mono); font-size:11.5px; color: var(--ink-90); margin:0 0 8px; line-height:1.4; }
.ps__ai-rec p strong { color: var(--ink-100); }
.ps__reasons { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:5px; }
.ps__reasons li { font-family: var(--font-mono); font-size:10.5px; color:var(--ink-80); display:grid; grid-template-columns: 12px 1fr; gap:6px; line-height:1.4; }
.ps__reasons li::before { content:"▸"; color:#c4b5fd; }
.ps__ai-actions { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.ps__btn { font-family: var(--font-mono); font-size:9.5px; letter-spacing:0.10em; text-transform:uppercase; padding:6px 9px; border-radius:5px; cursor:default; }
.ps__btn--p { background:#c4b5fd; color:#0a0f1a; border:1px solid #c4b5fd; font-weight:700; }
.ps__btn--w { background:rgba(234,179,8,0.10); color:#fcd34d; border:1px solid rgba(234,179,8,0.5); }
.ps__btn--g { background:transparent; color:var(--ink-80); border:1px solid var(--hair); }

/* Multi-agency mini */
.ps__agencies { display:grid; grid-template-columns: repeat(3, 1fr); gap:10px; padding:18px; }
.ps__agency { padding:14px 14px; border:1px solid var(--hair); border-radius:10px; background:rgba(8,13,24,0.6); position:relative; display:flex; flex-direction:column; gap:6px; min-height:120px; }
.ps__agency-ico { width:32px; height:32px; border:1px solid rgba(125,211,252,0.35); border-radius:8px; background:rgba(59,130,246,0.08); display:inline-flex; align-items:center; justify-content:center; color:#93c5fd; margin-bottom:4px; }
.ps__agency-ico svg { width:18px; height:18px; }
.ps__agency-name { font-family: var(--font-display); font-size:13px; font-weight:600; color:var(--ink-100); }
.ps__agency-status { font-family: var(--font-mono); font-size:9px; letter-spacing:0.14em; text-transform:uppercase; color:#a7f3d0; padding-top:4px; border-top:1px solid rgba(125,211,252,0.10); margin-top:auto; display:flex; justify-content:space-between; align-items:center; }
.ps__agency-status span:last-child { color: var(--ink-70); }
.ps__agency--high .ps__agency-status { color:#fda4af; }
.ps__agency--med .ps__agency-status { color:#fcd34d; }

/* Audit timeline mini */
.ps__audit { padding:18px; }
.ps__audit-list { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:0; position:relative; }
.ps__audit-list::before { content:""; position:absolute; left:11px; top:14px; bottom:14px; width:1px; background:rgba(125,211,252,0.25); }
.ps__audit-list li { display:grid; grid-template-columns: 24px 64px 1fr; gap:10px; align-items:flex-start; padding:8px 0; position:relative; font-family: var(--font-mono); font-size:11px; color:var(--ink-80); }
.ps__audit-list li::before { content:""; width:9px; height:9px; border-radius:50%; background:#7dd3fc; border:1.5px solid #0a0f1a; margin-left:7px; margin-top:5px; position:relative; z-index:1; }
.ps__audit-list li.is-alert::before { background:#fda4af; }
.ps__audit-list li.is-ok::before { background:#a7f3d0; }
.ps__audit-list li b { color:var(--ink-100); font-weight:500; }
.ps__audit-time { font-family: var(--font-mono); font-size:10px; color:#93c5fd; letter-spacing:0.06em; }

/* Business value tiles */
.ps__tiles { display:grid; grid-template-columns: repeat(3, 1fr); gap:14px; margin-bottom:96px; }
.ps__tile { border:1px solid var(--hair); border-radius:14px; padding:24px 22px; background: linear-gradient(180deg, rgba(255,255,255,0.018), rgba(255,255,255,0.005)); transition: transform 220ms ease, border-color 220ms ease; }
.ps__tile:hover { transform: translateY(-3px); border-color: rgba(244,114,182,0.4); }
.ps__tile-ico { width:38px; height:38px; border:1px solid rgba(244,114,182,0.35); border-radius:9px; background: rgba(244,114,182,0.06); display:inline-flex; align-items:center; justify-content:center; color:#fda4af; margin-bottom:14px; }
.ps__tile-ico svg { width:20px; height:20px; }
.ps__tile h4 { font-family: var(--font-display); font-size:17px; color:var(--ink-100); margin:0 0 8px; letter-spacing:-0.005em; }
.ps__tile p { font-size:13px; line-height:1.55; color: var(--ink-70); margin:0; }

/* Closing band */
.ps__close { border:1px solid rgba(244,114,182,0.35); border-radius:14px; padding: 40px 36px; background: radial-gradient(800px 400px at 0% 0%, rgba(244,114,182,0.10), transparent 60%), linear-gradient(180deg, rgba(8,13,24,0.6), rgba(8,13,24,0.3)); margin-bottom:32px; }
.ps__close h3 { font-family: var(--font-display); font-size: clamp(24px, 2.6vw, 32px); color: var(--ink-100); margin: 12px 0 0; letter-spacing:-0.02em; line-height:1.18; }
.ps__close h3 em { font-style: normal; color:#fda4af; }

@media (max-width:1080px) {
  .ps__hero, .ps__split { grid-template-columns:1fr; }
  .ps__split-l { border-right:0; border-bottom:1px solid var(--hair); }
  .ps__tiles { grid-template-columns: repeat(2,1fr); }
  .ps__agencies { grid-template-columns: repeat(2,1fr); }
}
@media (max-width:640px) {
  .ps { padding:40px 0 90px; }
  .ps__tiles, .ps__agencies, .ps__bridge { grid-template-columns:1fr; }
  .ps__sig { flex-wrap:wrap; gap:20px 0; }
  .ps__sig-item + .ps__sig-item { border-left:0; padding-left:0; }
}
@media (prefers-reduced-motion: reduce) {
  .ps__chip-dot, .ps__panel-pill::before { animation:none !important; }
}


/* Site rollup under the alarm feed — fills the column, adds real context */
.ps__roll { display:grid; grid-template-columns: repeat(4,1fr); gap:1px; background:rgba(125,211,252,0.10); border:1px solid rgba(125,211,252,0.12); border-radius:7px; overflow:hidden; margin-top:14px; }
.ps__roll-c { background:rgba(8,13,24,0.9); padding:9px 10px; display:flex; flex-direction:column; gap:3px; }
.ps__roll-k { font-family:var(--font-mono); font-size:8px; letter-spacing:0.14em; text-transform:uppercase; color: var(--ink-70); }
.ps__roll-v { font-family:var(--font-display); font-size:16px; font-weight:600; color:var(--ink-100); line-height:1; }
.ps__roll-v--ok { color:#6ee7b7; } .ps__roll-v--warn { color:#fbbf24; }
.ps__sites { margin-top:14px; }
.ps__site { display:grid; grid-template-columns:auto 1fr auto auto; gap:10px; align-items:center; padding:8px 0; border-bottom:1px solid rgba(125,211,252,0.07); }
.ps__site:last-child { border-bottom:0; }
.ps__site-d { width:7px; height:7px; border-radius:50%; }
.ps__site-n { font-family:var(--font-mono); font-size:10.5px; color:var(--ink-90); }
.ps__site-m { font-family:var(--font-mono); font-size:9px; color: var(--ink-70); }
.ps__site-b { font-family:var(--font-mono); font-size:8px; letter-spacing:0.12em; text-transform:uppercase; color:var(--ink-70); border:1px solid rgba(125,211,252,0.16); border-radius:4px; padding:2px 6px; }


/* ── Hero: the mockup matches the copy column's height exactly ──
   The panel is taken out of flow so its content can't drive the row. */
@media (min-width: 1081px) {
  .ps__hero { align-items: stretch; }
  .ps__motion { position: relative; min-height: 100%; }
  .ps__motion .ps__panel {
    position: absolute; inset: 14px;
    height: auto !important; width: auto;
    display: flex; flex-direction: column;
  }
  .ps__panel .ps__mini { flex: 1 1 auto; min-height: 0; grid-template-rows: auto 1fr; }
  .ps__panel .ps__map-mini { flex: 0 0 auto; }
  .ps__panel .ps__mini > div:last-child { min-height: 0; overflow: hidden; }
}
