.ms-hero { position: relative; overflow: hidden; padding-block: clamp(10px, 0vw, 96px) clamp(10px, 8vw, 120px);
  background: linear-gradient(180deg, #fff 0%, var(--tint) 100%); }
.ms-grid { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: clamp(28px, 5vw, 64px); align-items: center; }
.ms-title { margin: 18px 0 20px; max-width: 15ch; }
.ms-lead { margin-bottom: 30px; }
.ms-cta { display: flex; flex-wrap: wrap; gap: 13px; }

/* ---------- hero visual: SOC radar ---------- */
.ms-radar { display: flex; align-items: center; justify-content: center; }
.ms-radar svg { width: 100%; max-width: 420px; height: auto; overflow: visible; }
.ms-ring { fill: none; stroke: var(--border); stroke-width: 1; }
.ms-ring--accent { stroke: var(--cyan); stroke-opacity: .5; }
.ms-tick { stroke: var(--muted); stroke-opacity: .35; stroke-width: 1.6; }
.ms-spoke { stroke: var(--border); stroke-width: 1; stroke-dasharray: 2 5; opacity: .7; }
.ms-sweep { transform-box: view-box; transform-origin: 200px 200px; animation: ms-spin 5s linear infinite; }
.ms-sweep path { opacity: .6; }
.ms-sweep-edge { stroke: var(--cyan); stroke-width: 1.6; stroke-linecap: round; filter: drop-shadow(0 0 4px rgba(31,182,211,.7)); }
.ms-hub { fill: var(--navy-800); }
.ms-hub-ic { color: #fff; }
.ms-blip { fill: var(--teal); }
.ms-blip--alert { fill: #F04438; }
.ms-blip-pulse {
  fill: none; stroke: currentColor; stroke-width: 1.4;
  transform-box: fill-box; transform-origin: center; animation: ms-blip 2.6s var(--ease) infinite;
}
.ms-blip-pulse--alert { color: #F04438; animation-duration: 1.8s; }
.ms-blip-pulse--ok { color: var(--teal); }
.ms-live-dot { fill: #F04438; animation: ms-live-pulse 1.6s ease-in-out infinite; }
.ms-live-text { font-family: var(--body); font-size: 13px; font-weight: 700; letter-spacing: .08em; fill: var(--navy-800); }

@keyframes ms-spin { to { transform: rotate(360deg); } }
@keyframes ms-live-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .25; } }
@keyframes ms-blip {
  0% { transform: scale(.6); opacity: .9; }
  75% { opacity: 0; }
  100% { transform: scale(2.2); opacity: 0; }
}

/* ============================================================
   WHAT IS SOC — left-aligned, full width, two paragraphs
   ============================================================ */
.ms-intro .intro__grid { align-items: center; }
.ms-intro .intro__side p + p { margin-top: 16px; }

/* ============================================================
   WHY SOC + INCIDENT RESPONSE SPOTLIGHT
   ============================================================ */
.ms-why-grid { display: grid; grid-template-columns: 0.95fr 1.05fr; gap: clamp(28px, 5vw, 64px); align-items: center; }
.ms-why-grid > .lead { margin: 0; }

.ms-spot {
  border-radius: 22px; border: 1px solid var(--border); background: #fff;
  padding: clamp(28px, 3vw, 36px); box-shadow: var(--shadow-sm);
}
.ms-spot__ic {
  width: 54px; height: 54px; border-radius: 15px; display: grid; place-items: center; margin-bottom: 18px;
  color: var(--blue); border: 1px solid var(--border); border-color: color-mix(in srgb, var(--blue) 26%, var(--border));
}
.ms-spot__ic svg { width: 27px; height: 27px; }
.ms-spot h3 { font-family: var(--display); font-weight: 600; font-size: 1.3rem; letter-spacing: -0.015em; margin-bottom: 4px; }
.ms-spot__sub { font-size: 0.85rem; font-weight: 600; color: var(--cyan-600); text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 14px; }
.ms-spot p { color: var(--muted); font-size: 0.96rem; line-height: 1.65; margin-bottom: 22px; }
.ms-spot__badges { display: flex; gap: 10px; flex-wrap: wrap; }
.ms-spot__badges span {
  display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; border-radius: 999px;
  background: var(--tint); border: 1px solid var(--border); font-size: 0.82rem; font-weight: 600; color: var(--navy-800);
}
.ms-spot__badges svg { width: 15px; height: 15px; color: var(--blue); }

/* ============================================================
   BENEFITS — vertically centre the left column
   ============================================================ */
.ms-why .why__grid { align-items: center; }

/* ============================================================
   FINAL CTA — floating note cluster (same pattern as the other pages)
   ============================================================ */
.ms-cluster { position: relative; height: 380px; }
.ms-note {
  position: absolute; width: 220px; border-radius: 16px; padding: 18px 20px;
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14);
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  color: #E8EEF8; box-shadow: 0 30px 60px -30px rgba(0,0,0,.5);
  opacity: 0; transform: translateY(18px) rotate(var(--rot, 0deg));
  transition: opacity 700ms var(--ease), transform 700ms var(--ease), box-shadow 300ms var(--ease), border-color 300ms var(--ease);
}
.reveal.in .ms-note { opacity: 1; transform: translateY(0) rotate(var(--rot, 0deg)); animation: ms-float 6s var(--ease) infinite; }
.ms-note:hover { animation-play-state: paused; transform: translateY(-8px) rotate(var(--rot, 0deg)) scale(1.035); box-shadow: 0 36px 74px -28px rgba(0,0,0,.6); border-color: rgba(125,224,236,.4); }
.ms-note__ic { width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center; margin-bottom: 12px; background: rgba(125,224,236,.14); color: #7DE0EC; }
.ms-note__ic svg { width: 19px; height: 19px; }
.ms-note b { display: block; font-family: var(--display); font-weight: 600; font-size: 0.98rem; margin-bottom: 4px; }
.ms-note span { font-size: 0.82rem; color: #9FB0CC; line-height: 1.5; }
.ms-note--a { top: 6%; left: 4%; --rot: -4deg; animation-delay: .2s !important; }
.ms-note--b { top: 40%; left: 28%; --rot: 3deg; transition-delay: 140ms; animation-delay: 1.3s !important; }
.ms-note--c { top: 66%; left: 4%; --rot: -2deg; transition-delay: 280ms; animation-delay: 2.4s !important; }

@keyframes ms-float {
  0%, 100% { transform: translateY(0) rotate(var(--rot, 0deg)); }
  50% { transform: translateY(-11px) rotate(var(--rot, 0deg)); }
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1080px) {
  .ms-grid { grid-template-columns: 1fr; }
  .ms-radar svg { max-width: 360px; }
  .ms-why-grid { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .ms-cluster { height: auto; display: flex; flex-direction: column; gap: 14px; }
  .ms-note, .reveal.in .ms-note { position: static; width: auto; transform: none !important; animation: none !important; }
}

@media (prefers-reduced-motion: reduce) {
  .ms-note { transition: none !important; opacity: 1 !important; transform: none !important; }
  .ms-note, .reveal.in .ms-note { animation: none !important; }
  .ms-sweep, .ms-blip-pulse, .ms-live-dot { animation: none !important; }
  .ms-blip-pulse { opacity: 0 !important; }
}

@media (max-width: 640px) {
  .ms-spot__badges { flex-wrap: nowrap; gap: 8px; }
  .ms-spot__badges span { white-space: nowrap; padding: 8px 10px; font-size: 0.72rem; gap: 6px; }
  .ms-spot__badges svg { width: 13px; height: 13px; }
}

/* hero spacing: 40px desktop, 10px phones */
.ms-hero { padding-block: 40px; }
@media (max-width: 640px) {
  .ms-hero { padding-block: 10px; }
}
