/* October 2026: the supplied black-ground identity, project lifecycle and fire protection. */
.topline { background: #080808; }
.site-header { background: #000; backdrop-filter: none; border-bottom-color: #272727; }
.nav-wrap { height: 105px; }
.brand { width: 215px; }
.brand img { width: 100%; height: auto; }
footer { background: #000; }
.footer-brand { width: 260px; }
.footer-bottom { border-color: #272727; }
.hero h1 { font-size: clamp(42px,4.5vw,64px); }
.process-priority {
  background: #0b2232;
  color: #fff;
  border: 1px solid #294658;
  border-radius: 7px;
  margin-block: 75px;
  padding: 50px;
  position: relative;
  overflow: hidden;
  background-image: linear-gradient(#ffffff03 1px,transparent 1px),linear-gradient(90deg,#ffffff03 1px,transparent 1px);
  background-size: 35px 35px;
}
.process-priority:before { content: ''; position: absolute; top: 0; left: 50px; height: 4px; width: 100px; background: #39b4e8; }
.process-priority .section-top { align-items: center; gap: 50px; margin-bottom: 45px; }
.process-priority .eyebrow { color: #73c8eb; font-size: 10px; }
.process-priority h2 { font-size: clamp(32px,3.7vw,47px); }
.process-priority h2 em { color: #5ec7ee; font-style: normal; }
.process-intro { max-width: 360px; }
.process-intro p { color: #c0d0db; font-size: 14px; }
.process-intro .text-link { margin-top: 18px; color: #83d2ef; }
.process-priority ol { gap: 16px; margin: 0; }
.process-priority li { position: relative; border: 1px solid #3d5869; border-radius: 5px; background: #102d40; padding: 24px 20px; }
.process-priority li:before { display: none; }
.process-priority li:not(:last-child):after { content: '\2192'; position: absolute; right: -17px; top: 46px; color: #8bdafa; font-size: 20px; background: #0b2232; padding: 0 3px; z-index: 1; }
.process-step-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 24px; }
.process-step-top svg { width: 44px; height: 44px; color: #74d0f3; }
.process-priority .step-code { font-size: 12px; color: #8dafc0; margin: 0; letter-spacing: .08em; }
.process-priority .step-caption { color: #9db7c6; font-size: 10px; margin-bottom: 9px; }
.process-priority strong { font-size: 24px; color: white; }
.process-priority li>span { color: #bfd1dc; font-size: 13px; line-height: 1.75; }
.process-bottom { display: flex; justify-content: space-between; gap: 25px; border-top: 1px solid #365365; padding-top: 25px; margin-top: 32px; align-items: center; }
.process-bottom>span { font-size: 9px; color: #a8c0ce; letter-spacing: .09em; }
.process-bottom a { font-size: 12px; color: #83d2ef; }
.fire-feature { display: grid; grid-template-columns: 125px 1fr auto; align-items: center; gap: 40px; padding: 35px 0 55px; border-bottom: 1px solid #e5d9d4; margin-bottom: 35px; }
.fire-symbol { background: #fff0e9; border: 1px solid #f2d3c5; width: 125px; height: 150px; border-radius: 6px; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 16px; }
.fire-symbol svg { width: 62px; height: 62px; color: #bf431f; }
.fire-symbol span { color: #913a23; font-size: 8px; letter-spacing: .08em; font-weight: 700; }
.fire-copy .eyebrow { color: #a4462a; font-size: 10px; margin-bottom: 15px; }
.fire-copy h2 { font-size: 32px; margin-bottom: 16px; }
.fire-copy>p:not(.eyebrow) { max-width: 630px; font-size: 14px; }
.fire-feature .button { background: #a73b22; }
.fire-feature .button:hover { background: #852d19; }
.fire-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.fire-tags span { font-size: 10px; background: #f8eee8; color: #7e3e29; border: 1px solid #ead6c9; border-radius: 3px; padding: 5px 9px; }
.service-card.fire-card { border: 1px solid #d68b6d; background: #fff5ee; box-shadow: inset 0 3px 0 #bd4926; }
.fire-card .card-number,.fire-card .card-link { color: #a43d21; }
.fire-card .card-link { border-top-color: #edd9ce; }
.service-card.fire-card:hover { background: #fff0e5; border-color: #b94a27; }
.service-card:last-child { grid-column: auto; display: flex; align-items: start; gap: 0; min-height: 280px; }
.service-card:last-child>* { margin: initial; }
.service-card:last-child .card-number { margin-bottom: 25px; }
.service-card:last-child h3 { margin-bottom: 16px; }
.service-card:last-child p { margin-bottom: 24px; }
.service-card:last-child .card-link { padding-top: 18px; margin-top: auto; width: 100%; border-top: 1px solid #3a5261; }
.fire-detail { background: #fff2e9; border: 1px solid #dfb69f; border-left: 4px solid #b54220; padding: 40px; margin-block: 30px; border-radius: 5px; }
.fire-detail .eyebrow { color: #a73b22; }
.fire-detail li::marker { color: #a73b22; }
.brand-disciplines { background: #000; border-bottom: 1px solid #252525; margin-bottom: 50px; }
.brand-disciplines>.wrap { padding-bottom: 24px; }
.discipline-desktop { width: 100%; max-width: 1160px; margin-inline: auto; }
.discipline-mobile,.discipline-markets { display: none; }
.brand-disciplines .alarm-scope { color: #a7b0b6; text-align: center; font-size: 11px; margin-top: 0; }
@media(max-width:1100px) {
  .nav-wrap { gap: 22px; }
  .brand { width: 190px; }
  .process-priority { padding: 38px; }
  .fire-feature { grid-template-columns: 105px 1fr; gap: 28px; }
  .fire-feature .button { grid-column: 2; justify-self: start; }
  .fire-symbol { width: 105px; height: 135px; }
}
@media(max-width:900px) {
  .nav-wrap { height: auto; min-height: 95px; }
  .process-priority { padding: 35px; }
  .process-priority .section-top { display: block; }
  .process-intro { max-width: 560px; margin-top: 25px; }
  .process-priority ol { grid-template-columns: 1fr 1fr; gap: 20px; }
  .process-priority li:after { display: none; }
  .process-bottom { display: block; }
  .process-bottom a { display: block; margin-top: 12px; }
}
@media(max-width:640px) {
  .brand { width: 155px; }
  .nav-wrap { min-height: 83px; gap: 8px; }
  .nav-contact { padding: 8px; font-size: 10px; }
  .nav-contact span { margin-left: 4px; }
  .js .menu-toggle { padding: 7px 9px; font-size: 12px; }
  .process-priority { padding: 30px 22px; margin-block: 45px; }
  .process-priority:before { left: 22px; width: 70px; }
  .process-priority .eyebrow { font-size: 8px; letter-spacing: .08em; }
  .process-priority .section-top { margin-bottom: 28px; }
  .process-priority h2 { font-size: 35px; }
  .process-priority ol { grid-template-columns: 1fr; gap: 14px; }
  .process-priority li { padding: 22px; }
  .process-step-top { margin-bottom: 16px; }
  .process-priority strong { font-size: 26px; }
  .process-bottom>span { font-size: 8px; }
  .fire-feature { grid-template-columns: 1fr; gap: 24px; padding-top: 0; margin-bottom: 0; }
  .fire-symbol { width: 88px; height: 100px; gap: 8px; }
  .fire-symbol svg { height: 44px; width: 44px; }
  .fire-symbol span { font-size: 7px; }
  .fire-feature .button { grid-column: 1; }
  .fire-copy h2 { font-size: 29px; }
  .fire-detail { padding: 25px; }
  .footer-brand { width: 245px; }
  .discipline-desktop { display: none; }
  .discipline-mobile { display: grid; grid-template-columns: 1fr 1fr; padding-top: 25px; gap: 12px; }
  .discipline-mobile img { width: 100%; height: auto; }
  .discipline-mobile img:last-child { grid-column: 1/-1; width: 50%; justify-self: center; }
  .discipline-markets { display: block; font-size: 8px; letter-spacing: .12em; text-align: center; margin-block: 25px; color: #d3ddd4; }
  .discipline-markets span { color: #71ba4a; padding: 0 5px; }
  .brand-disciplines .alarm-scope { font-size: 10px; }
}
@media(max-width:360px) {
  .brand { width: 133px; }
  .nav-contact { font-size: 9px; }
  .js .menu-toggle { padding-inline: 7px; font-size: 11px; }
}

/* Four readable headlines share one grid cell to prevent layout shifts. */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
.hero-rotator { display: grid; }
.hero-phrase { grid-area: 1 / 1; opacity: 0; visibility: hidden; }
.hero-phrase:nth-of-type(2) { opacity: 1; visibility: visible; }
.hero-motion-control {
  background: transparent;
  color: #52616a;
  border: 0;
  border-bottom: 1px solid #a6b8bf;
  padding: 4px 0;
  margin-top: 16px;
  font-size: 10px;
  cursor: pointer;
}
.hero-motion-control:hover { color: var(--blue); }
@keyframes rotate-headline {
  0%, 19% { opacity: 1; visibility: visible; transform: translateY(0); }
  24%, 100% { opacity: 0; visibility: hidden; transform: translateY(-12px); }
}
@media(prefers-reduced-motion: no-preference) {
  .js .hero-phrase { opacity: 0; visibility: hidden; animation: rotate-headline 20s infinite; }
  .js .hero-phrase:nth-of-type(3) { animation-delay: 5s; }
  .js .hero-phrase:nth-of-type(4) { animation-delay: 10s; }
  .js .hero-phrase:nth-of-type(5) { animation-delay: 15s; }
  .js .hero-rotator.is-paused .hero-phrase { animation: none; opacity: 0; visibility: hidden; }
  .js .hero-rotator.is-paused .hero-phrase.paused-current { opacity: 1; visibility: visible; transform: none; }
}
@media(prefers-reduced-motion: reduce) {
  .hero-motion-control { display: none; }
}
