:root {
  --navy: #0B1F3A;
  --navy2: #102A4C;
  --blue: #0047B3;
  --blue2: #0A56CF;
  --soft: #F7F9FC;
  --slate: #5B6675;
  --text: #12213A;
  --line: #DDE4ED;
  --amber: #C58A00;
  --green: #247849;
  --white: #fff;
  --shadow: 0 18px 50px rgba(11,31,58,.09);
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-family: Arial,Helvetica,sans-serif;
  color: var(--text);
  background: #fff;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}

a {
  color: inherit;
  text-decoration: none;
}

button,input,select,textarea {
  font: inherit;
}

img {
  max-width: 100%;
}

.shell {
  width: min(1180px,calc(100% - 48px));
  margin: 0 auto;
}

.section {
  padding: 102px 0;
}

.section-soft {
  background: var(--soft);
}

.section-navy {
  background: var(--navy);
  color: #fff;
}

.eyebrow {
  margin: 0 0 18px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .14em;
  color: var(--blue);
  text-transform: uppercase;
}

.section-navy .eyebrow {
  color: #9AB9F4;
}

h1,h2,h3,p {
  margin-top: 0;
}

h1 {
  font-size: clamp(46px,6vw,76px);
  line-height: 1.02;
  letter-spacing: -.045em;
  color: var(--navy);
  margin-bottom: 26px;
}

h1 span {
  color: var(--amber);
}

h2 {
  font-size: clamp(34px,4vw,54px);
  line-height: 1.08;
  letter-spacing: -.035em;
  color: var(--navy);
  margin-bottom: 22px;
}

.section-navy h2,.section-navy h3 {
  color: #fff;
}

h3 {
  font-size: 20px;
  line-height: 1.25;
  color: var(--navy);
  margin-bottom: 10px;
}

p {
  font-size: 17px;
  color: var(--slate);
}

.section-navy p {
  color: #C8D3E2;
}

.lead {
  font-size: 21px;
  line-height: 1.6;
  max-width: 790px;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(255,255,255,.95);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(221,228,237,.8);
}

.nav-wrap {
  height: 78px;
  display: grid;
  grid-template-columns: 220px 1fr auto;
  gap: 24px;
  align-items: center;
}

.brand img {
  display: block;
  width: 188px;
  height: auto;
}

.nav {
  display: flex;
  justify-content: flex-end;
  gap: 26px;
  align-items: center;
}

.nav a {
  font-size: 14px;
  font-weight: 700;
  color: #33445C;
  white-space: nowrap;
}

.nav a:hover,.nav a.active {
  color: var(--blue);
}

.mobile-menu-toggle {
  display: none;
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 1px solid transparent;
  border-radius: 999px;
  padding: 14px 21px;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  transition: .2s ease;
  background: none;
}

.button:hover {
  transform: translateY(-1px);
}

.button-primary {
  background: var(--blue);
  color: #fff;
  box-shadow: 0 9px 24px rgba(0,71,179,.18);
}

.button-primary:hover {
  background: var(--blue2);
}

.button-secondary {
  border-color: #C9D3E0;
  background: #fff;
  color: var(--navy);
}

.button-small {
  padding: 10px 16px;
}

.button-white {
  background: #fff;
  color: var(--navy);
}

.button-dark-outline {
  border-color: rgba(255,255,255,.28);
  color: #fff;
}

.hero {
  padding: 96px 0 84px;
  overflow: hidden;
}

.hero-grid {
  display: grid;
  grid-template-columns: 1.08fr .92fr;
  gap: 70px;
  align-items: center;
}

.hero-actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin: 30px 0 24px;
}

.status {
  display: flex;
  gap: 10px;
  align-items: center;
  color: #526176;
  font-size: 13px;
}

.status-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--amber);
}

.crisis-map {
  border-radius: 25px;
  background: var(--navy);
  padding: 26px;
  color: #fff;
  box-shadow: var(--shadow);
  min-height: 470px;
  position: relative;
  overflow: hidden;
}

.crisis-map:before {
  content: "";
  position: absolute;
  width: 250px;
  height: 250px;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 50%;
  right: -90px;
  top: -110px;
}

.crisis-map:after {
  content: "";
  position: absolute;
  width: 330px;
  height: 330px;
  border: 1px solid rgba(255,255,255,.05);
  border-radius: 50%;
  left: -150px;
  bottom: -210px;
}

.map-label {
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #9CB4D4;
  font-weight: 700;
}

.map-title {
  font-size: 22px;
  font-weight: 700;
  margin: 7px 0 22px;
}

.map-stack {
  display: grid;
  gap: 11px;
  position: relative;
  z-index: 1;
}

.map-card {
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.055);
  border-radius: 15px;
  padding: 16px;
}

.map-card strong {
  display: block;
  font-size: 15px;
  margin-bottom: 4px;
}

.map-card span {
  font-size: 12px;
  color: #C5D2E3;
}

.map-activation {
  display: flex;
  gap: 8px;
  align-items: center;
  margin: 15px 0;
  color: #F0D497;
  font-weight: 700;
  font-size: 12px;
}

.map-activation i {
  display: block;
  flex: 1;
  height: 1px;
  background: rgba(240,212,151,.45);
}

.intro-center {
  text-align: center;
  max-width: 880px;
  margin: 0 auto 50px;
}

.grid-3 {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 18px;
}

.card {
  border: 1px solid var(--line);
  border-radius: 18px;
  background: #fff;
  padding: 24px;
}

.card p {
  font-size: 15px;
  margin-bottom: 0;
}

.scenario {
  border-top: 3px solid #D5DEE9;
}

.scenario strong {
  display: block;
  color: var(--navy);
  font-size: 16px;
  margin-bottom: 8px;
}

.flow {
  display: grid;
  grid-template-columns: repeat(5,1fr);
  border: 1px solid var(--line);
  border-radius: 19px;
  overflow: hidden;
  margin-top: 44px;
}

.flow-step {
  padding: 25px 19px;
  background: #fff;
  border-right: 1px solid var(--line);
  position: relative;
}

.flow-step:last-child {
  border-right: 0;
}

.flow-step small {
  display: block;
  color: var(--blue);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .1em;
  margin-bottom: 7px;
}

.flow-step b {
  color: var(--navy);
  font-size: 16px;
}

.flow-step p {
  font-size: 13px;
  margin: 8px 0 0;
}

.cap-grid {
  display: grid;
  grid-template-columns: repeat(2,1fr);
  gap: 15px;
}

.cap {
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 18px;
  padding: 23px;
  background: rgba(255,255,255,.04);
}

.cap b {
  display: block;
  color: #fff;
  font-size: 17px;
  margin-bottom: 6px;
}

.cap p {
  font-size: 14px;
  margin: 0;
  color: #C5D2E1;
}

.cap:last-child {
  grid-column: 1/-1;
}

.architecture {
  display: grid;
  grid-template-columns: 1fr .95fr;
  gap: 56px;
  align-items: center;
}

.independence-box {
  border: 1px solid var(--line);
  border-radius: 22px;
  padding: 28px;
  background: #fff;
}

.ind-line {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 14px;
  margin: 14px 0;
}

.ind-node {
  border-radius: 13px;
  background: var(--soft);
  padding: 17px;
  font-size: 14px;
  color: #3D4E66;
  text-align: center;
  border: 1px solid var(--line);
}

.ind-node.crisis {
  background: #EDF3FF;
  border-color: #C4D6F4;
  color: var(--navy);
  font-weight: 700;
}

.ind-arrow {
  font-weight: 700;
  color: #8A5F00;
}

.note {
  padding: 17px 18px;
  border-radius: 14px;
  background: #FFF7E9;
  border: 1px solid #EAD8B4;
  color: #62512E;
  font-size: 13px;
  margin-top: 16px;
}

.audience {
  display: grid;
  grid-template-columns: 1.08fr .92fr;
  gap: 54px;
  align-items: start;
}

.audience-box {
  border: 1px solid var(--line);
  border-radius: 20px;
  padding: 28px;
  background: #fff;
}

.audience-box ul {
  padding-left: 20px;
  color: var(--slate);
  font-size: 14px;
  margin-bottom: 0;
}

.audience-box li {
  margin: 9px 0;
}

.pilot-strip {
  display: grid;
  grid-template-columns: 1.25fr auto;
  gap: 30px;
  align-items: center;
  border-radius: 24px;
  background: var(--navy);
  padding: 46px 48px;
  color: #fff;
}

.pilot-strip h2 {
  color: #fff;
  margin-bottom: 12px;
  font-size: clamp(30px,4vw,46px);
}

.pilot-strip p {
  color: #C7D2E3;
  margin: 0;
  max-width: 710px;
}

.contact-card {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 24px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 20px;
  padding: 24px;
  background: #fff;
  margin-top: 36px;
}

.contact-photo {
  width: 92px;
  height: 92px;
  object-fit: cover;
  object-position: center 35%;
  border-radius: 15px;
  display: block;
}

.contact-card h3 {
  margin-bottom: 4px;
}

.contact-card p {
  font-size: 14px;
  margin: 0;
}

.contact-meta {
  font-size: 13px;
  color: #5C6A7E;
  margin-top: 7px;
}

.contact-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.funding {
  text-align: center;
  padding: 46px 0;
  border-top: 1px solid var(--line);
}

.funding p {
  font-size: 13px;
  margin: 0 auto 20px;
  max-width: 760px;
}

.funding img {
  display: block;
  width: min(620px,100%);
  margin: 0 auto 13px;
}

.funding small {
  display: block;
  color: #5B6675;
  font-size: 11px;
}

.footer {
  background: #07182E;
  color: #fff;
  padding: 50px 0 26px;
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.2fr .8fr .8fr;
  gap: 50px;
}

.footer-logo {
  width: 180px;
  filter: brightness(0) invert(1);
  margin-bottom: 18px;
}

.footer p,.footer a {
  font-size: 13px;
  color: #B7C6D9;
}

.footer h4 {
  margin: 0 0 14px;
  font-size: 13px;
  color: #fff;
}

.footer-links {
  display: grid;
  gap: 8px;
}

.footer-bottom {
  border-top: 1px solid rgba(255,255,255,.12);
  margin-top: 34px;
  padding-top: 19px;
  color: #8192A9;
  font-size: 11px;
}

dialog {
  border: 0;
  border-radius: 22px;
  padding: 0;
  width: min(620px,calc(100% - 30px));
  box-shadow: 0 30px 90px rgba(0,0,0,.25);
}

dialog::backdrop {
  background: rgba(7,24,46,.63);
}

.modal {
  padding: 32px;
}

.modal-head {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: start;
}

.modal h2 {
  font-size: 30px;
  margin-bottom: 10px;
}

.modal p {
  font-size: 14px;
}

.close {
  border: 0;
  background: #EEF2F7;
  border-radius: 50%;
  width: 36px;
  height: 36px;
  cursor: pointer;
}

.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.field {
  display: grid;
  gap: 6px;
}

.field-full {
  grid-column: 1/-1;
}

label {
  font-size: 12px;
  font-weight: 700;
  color: #43536A;
}

input,select,textarea {
  width: 100%;
  border: 1px solid #CBD5E1;
  border-radius: 10px;
  padding: 12px 13px;
  color: var(--navy);
  background: #fff;
}

textarea {
  min-height: 100px;
  resize: vertical;
}

.consent {
  display: flex;
  gap: 10px;
  align-items: flex-start;
}

.consent input {
  width: auto;
  margin-top: 4px;
}

.consent label {
  font-weight: 400;
  font-size: 11px;
  line-height: 1.45;
}

.form-note {
  font-size: 11px;
  color: #5B6675;
  margin-top: 12px;
}

@media (max-width:960px) {
.nav-wrap{grid-template-columns:1fr auto auto} .nav{display:none;position:absolute;top:78px;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);padding:20px 24px;flex-direction:column;align-items:flex-start}
      .nav.open{display:flex} .mobile-menu-toggle{display:block;border:0;background:none;font-weight:700;color:var(--navy)}
      .hero-grid,.architecture,.audience{grid-template-columns:1fr} .grid-3{grid-template-columns:1fr 1fr} .flow{grid-template-columns:1fr} .flow-step{border-right:0;border-bottom:1px solid var(--line)} .flow-step:last-child{border-bottom:0}
      .pilot-strip{grid-template-columns:1fr} .contact-card{grid-template-columns:auto 1fr} .contact-actions{grid-column:1/-1;justify-content:flex-start}
}

@media (max-width:650px) {
.shell{width:min(100% - 30px,1180px)} .section{padding:74px 0} .hero{padding-top:70px} .site-header .button-secondary{display:none} .brand img{width:165px}
      .nav-wrap{height:70px}.nav{top:70px} h1{font-size:43px} h2{font-size:34px} .lead{font-size:18px}
      .grid-3,.cap-grid,.form-grid{grid-template-columns:1fr} .cap:last-child{grid-column:auto} .crisis-map{min-height:0}
      .ind-line{grid-template-columns:1fr} .ind-arrow{text-align:center} .pilot-strip{padding:32px 25px}
      .contact-card{grid-template-columns:1fr} .contact-photo{width:110px;height:110px} .field-full{grid-column:auto}
      .footer-grid{grid-template-columns:1fr}
}

/* Generated from former inline style attributes for strict CSP. */

.u-inline-1 {
  margin: 0 auto;
}

.u-inline-2 {
  margin: 0 auto;
  color: #C8D3E2;
}

.u-inline-3 {
  color: #9AB9F4;
}

.u-inline-4 {
  color: var(--navy);
}

.u-inline-5 {
  margin-top: 18px;
}

.u-inline-6 {
  color: #B7C6D9;
  font-size: 13px;
}

/* v24 — stakeholder communication detail */

.external-comms-detail {
  background: #fff;
}

.external-comms-grid {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 14px;
}

.external-comms-grid>div {
  border-top: 2px solid #D4E4F6;
  padding: 18px 12px 10px 0;
}

.external-comms-grid span {
  display: block;
  color: #0047B3;
  font-size: 12px;
  font-weight: 800;
  margin-bottom: 17px;
}

.external-comms-grid h3 {
  font-size: 17px;
  margin-bottom: 9px;
}

.external-comms-grid p {
  font-size: 14px;
  line-height: 1.6;
  margin: 0;
}

.comms-evidence-note {
  margin: 29px 0 0;
  text-align: center;
  font-size: 14px;
  color: #526176;
}

@media (max-width:960px) {
.external-comms-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width:650px) {
.external-comms-grid{grid-template-columns:1fr}
}

/* v26: separate, understated incident management feature; preserve original three business cards */

.protected-operations-grid .incident-operations-feature {
  grid-column: 1/-1;
  background: #F5F8FC;
  border-color: #C6D9EE;
  border-left: 3px solid #0047B3;
  padding: 21px 25px;
}

.protected-operations-grid .incident-operations-feature p {
  max-width: 970px;
}

@media (max-width:760px) {
.protected-operations-grid .incident-operations-feature{padding:21px 23px}
}

/* v25 — protected operational copies, deliberately restrained presentation */

.protected-operations .intro-center {
  max-width: 920px;
}

.protected-operations-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 17px;
  margin-top: 38px;
}

.protected-operations-grid article {
  background: #fff;
  border: 1px solid #DFE6EE;
  border-radius: 14px;
  padding: 26px 23px;
}

.protected-operations-grid article span {
  display: block;
  font-size: 19px;
  font-weight: 800;
  color: #0B1F3A;
  margin-bottom: 10px;
}

.protected-operations-grid article p {
  font-size: 14px;
  line-height: 1.65;
  margin: 0;
  color: #59697A;
}

.protected-operations-principle {
  margin-top: 24px;
  padding: 21px 25px;
  border: 1px solid #D1DCE9;
  border-left: 3px solid #0047B3;
  border-radius: 11px;
  background: #F7F9FC;
  display: flex;
  gap: 14px;
  align-items: baseline;
}

.protected-operations-principle strong {
  white-space: nowrap;
  color: #0B1F3A;
  font-size: 14px;
}

.protected-operations-principle span {
  font-size: 13px;
  line-height: 1.6;
  color: #536479;
}

@media (max-width:760px) {
.protected-operations-grid{grid-template-columns:1fr;gap:12px}.protected-operations-principle{flex-direction:column;gap:7px}
}

/* v27 — restrained first-use UX and four-step recovery example */

.capability-scope {
  max-width: 76ch;
  margin: 26px auto 0;
  color: #dbe8fa;
  line-height: 1.65;
  font-size: 14px;
}

.recovery-scenario-grid {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 18px;
  margin-top: 38px;
}

.recovery-scenario-grid article {
  padding: 25px 20px 22px;
  background: #fff;
  border: 1px solid #dce5ef;
  border-radius: 15px;
  min-width: 0;
}

.recovery-scenario-grid article span {
  display: block;
  color: #0047b3;
  font-size: 13px;
  font-weight: 800;
  margin-bottom: 22px;
}

.recovery-scenario-grid article h3 {
  font-size: 21px;
  line-height: 1.2;
  margin: 0 0 10px;
  color: #0b1f3a;
}

.recovery-scenario-grid article p {
  font-size: 14px;
  line-height: 1.65;
  color: #5b6675;
  margin: 0;
}

@media (max-width:980px) {
.recovery-scenario-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width:620px) {
.recovery-scenario-grid{grid-template-columns:1fr;gap:12px;margin-top:26px}.recovery-scenario-grid article{padding:21px 19px}.recovery-scenario-grid article span{margin-bottom:10px}.capability-scope{margin:20px 20px 0}
}

/* v50.2.12 — consolidated solution: small, text-only first-use explanation */
.intuitive-use-compact{max-width:840px}
.intuitive-use-compact h2{max-width:740px;margin-bottom:18px}
.intuitive-use-compact p:not(.eyebrow){color:#5b6675;line-height:1.68;font-size:17px;max-width:800px;margin:0 0 14px}
@media(max-width:680px){.intuitive-use-compact p:not(.eyebrow){font-size:16px}}
