:root {
  --navy:#25406b;
  --ink:#14253f;
  --deep:#0c1728;
  --red:#bb133e;
  --paper:#f6f6f3;
  --muted:#566273;
  --line:#dce0e4;
  --white:#fff;
  --heading:'Barlow Condensed',sans-serif;
  --body:'DM Sans',sans-serif;
}
* {
  box-sizing:border-box;
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:100px;
}
body {
  margin:0;
  color:var(--ink);
  font-family:var(--body);
  font-size:18px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,p,figure {
  margin:0;
}
a {
  color:inherit;
  text-decoration:none;
}
button,input,select,textarea {
  font:inherit;
}
button,a,input,select,textarea {
  -webkit-tap-highlight-color:transparent;
}
a:focus-visible,button:focus-visible {
  outline:3px solid var(--red);
  outline-offset:5px;
}
img {
  display:block;
  max-width:100%;
}
button {
  cursor:pointer;
}
.container {
  width:min(1280px,calc(100% - 112px));
  margin:auto;
}
.skip-link {
  position:fixed;
  top:-80px;
  left:20px;
  z-index:100;
  background:white;
  padding:12px;
}
.skip-link:focus {
  top:10px;
}
.utility-bar {
  background:var(--ink);
  color:#d6dce5;
  font-size:12px;
  font-weight:600;
  letter-spacing:1.55px;
}
.utility-bar .container {
  display:flex;
  justify-content:space-between;
  padding-top:9px;
  padding-bottom:9px;
}
.tiny-star {
  color:#fff;
  margin-right:9px;
}
.navbar {
  position:sticky;
  top:0;
  z-index:20;
  background:#fff;
  border-bottom:1px solid #e9ebef;
}
.nav-container {
  height:94px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:32px;
}
.nav-logo img {
  width:205px;
  height:auto;
}
.nav-menu {
  display:flex;
  align-items:center;
  gap:35px;
}
.nav-menu>a:not(.button) {
  font-size:16px;
  font-weight:600;
}
.nav-menu>a:not(.button):hover {
  color:var(--red);
}
.button {
  min-height:52px;
  max-width:100%;
  padding:16px 25px;
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  font-size:14px;
  font-weight:700;
  letter-spacing:1.4px;
  border:0;
  transition:background .2s,transform .2s;
}
.button-red {
  color:white;
  background:var(--red);
}
.button-red:hover {
  background:#990b30;
  transform:translateY(-2px);
}
.button span {
  font-size:21px;
  line-height:1;
}
.nav-cta {
  min-height:44px;
  padding:12px 22px;
  margin-left:5px;
}
.nav-toggle {
  display:none;
}
.hero {
  position:relative;
  background:var(--deep);
  isolation:isolate;
  overflow:hidden;
  color:white;
}
.hero-photo,.hero-shade {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:-2;
}
.hero-photo {
  object-position:62% 52%;
}
.hero-shade {
  z-index:-1;
  background:linear-gradient(90deg,rgba(8,19,34,.96) 0%,rgba(8,19,34,.86) 31%,rgba(8,19,34,.25) 66%,rgba(8,19,34,.1) 100%),linear-gradient(0deg,rgba(8,19,34,.85),transparent 22%);
}
.hero-inner {
  padding-top:77px;
}
.hero-copy {
  max-width:625px;
}
.eyebrow {
  display:flex;
  align-items:center;
  gap:11px;
  font-size:13px;
  letter-spacing:1.9px;
  font-weight:700;
  color:var(--navy);
  margin-bottom:24px;
  line-height:1.5;
}
.eyebrow>span {
  width:25px;
  height:2px;
  display:inline-block;
  background:var(--red);
  flex-shrink:0;
}
.eyebrow.light {
  color:#d4dce8;
}
h1,h2 {
  font-family:var(--heading);
  font-weight:600;
  line-height:1.03;
  letter-spacing:-.8px;
}
h1 {
  font-size:clamp(64px,6.5vw,96px);
  max-width:650px;
}
h1 em,h2 em {
  font-style:normal;
  color:#b6c5dc;
}
.hero-description {
  font-size:18px;
  line-height:1.8;
  max-width:500px;
  color:#c8d0dc;
  margin-top:26px;
}
.hero-actions {
  display:flex;
  gap:29px;
  align-items:center;
  margin-top:32px;
}
.text-link {
  display:inline-flex;
  gap:24px;
  align-items:center;
  font-size:16px;
  font-weight:600;
}
.text-link:hover {
  color:#c7d8ee;
}
.light {
  color:white;
}
.hero-bottom {
  display:flex;
  justify-content:space-between;
  gap:20px;
  padding:24px 0;
  margin-top:77px;
  border-top:1px solid #ffffff30;
  font-size:12px;
  letter-spacing:1.55px;
  color:#b9c5d5;
  font-weight:500;
}
.hero-detail {
  display:flex;
  align-items:center;
  gap:9px;
}
.red-square {
  width:6px;
  height:6px;
  background:var(--red);
  display:inline-block;
  flex-shrink:0;
}
.trust-strip {
  border-bottom:1px solid var(--line);
  background:#fff;
}
.trust-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  padding:29px 0;
}
.trust-grid>div {
  display:flex;
  align-items:center;
  gap:19px;
  padding-left:35px;
  border-left:1px solid var(--line);
}
.trust-grid>div:first-child {
  border-left:0;
  padding-left:0;
}
.trust-symbol {
  color:var(--red);
  font-size:30px;
  line-height:1;
}
.trust-grid strong {
  display:block;
  font-size:17px;
  font-weight:700;
}
.trust-grid p>span {
  display:block;
  font-size:15px;
  color:var(--muted);
  margin-top:2px;
}
.clients {
  padding:36px 0 40px;
  background:var(--ink);
  color:#fff;
  overflow:hidden;
}
.clients h2 {
  font:600 16px/1.4 var(--body);
  letter-spacing:2px;
  text-align:center;
  text-transform:uppercase;
  margin-bottom:24px;
}
.client-marquee {
  overflow:hidden;
  mask-image:linear-gradient(to right,transparent,#000 6%,#000 94%,transparent);
}
.client-marquee:focus-visible {
  outline:2px solid #fff;
  outline-offset:-4px;
}
.client-track {
  display:flex;
  width:max-content;
}
.client-track.is-ready {
  animation:client-scroll 85s linear infinite;
}
.client-logos {
  display:flex;
  align-items:center;
  flex-shrink:0;
  gap:64px;
  padding:0 32px;
  margin:0;
  list-style:none;
}
.client-logo {
  display:flex;
  align-items:center;
  justify-content:center;
  width:170px;
  height:82px;
  flex-shrink:0;
}
.client-logo img {
  width:100%;
  height:52px;
  object-fit:contain;
  filter:brightness(0) invert(1);
}
.client-logo.original img { filter:none; }
.client-logo.tall img { height:78px; }
.client-logo.wide { width:248px; }
.client-marquee:hover .client-track,
.client-marquee:focus-within .client-track { animation-play-state:paused; }
@keyframes client-scroll {
  to { transform:translateX(-50%); }
}
@media (max-width:760px) {
  .clients { padding:28px 0 30px; }
  .clients h2 { font-size:16px; margin-bottom:18px; }
  .client-logos { gap:40px; padding:0 20px; }
  .client-logo { width:140px; height:70px; }
  .client-logo img { height:44px; }
  .client-logo.tall img { height:66px; }
  .client-logo.wide { width:218px; }
  .client-track.is-ready { animation-duration:75s; }
}
@media (prefers-reduced-motion:reduce) {
  .client-track.is-ready { animation:none; transform:none; width:100%; }
  .client-marquee { mask-image:none; }
  .client-logos { width:100%; flex-wrap:wrap; justify-content:center; gap:24px 40px; }
  .client-logos[aria-hidden="true"] { display:none; }
}
.detail-hero { background:var(--ink); color:#fff; padding:54px 0 64px; }
.detail-hero h1 { font:600 clamp(44px,5vw,72px)/1.05 var(--heading); max-width:850px; margin:26px 0; }
.detail-hero .lead { max-width:760px; font-size:18px; color:#dce3ed; }
.detail-hero .button { margin-top:28px; }
.breadcrumbs { font-size:14px; color:#c5cedc; }
.breadcrumbs ol { display:flex; flex-wrap:wrap; gap:10px; list-style:none; padding:0; margin:0; }
.breadcrumbs li+li::before { content:'/'; margin-right:10px; color:#94a3b8; }
.breadcrumbs a { text-decoration:underline; text-underline-offset:3px; }
.detail-grid { display:grid; grid-template-columns:1fr 1.15fr; gap:70px; }
.detail-content { background:var(--paper); }
.detail-content article { max-width:780px; }
.detail-content article+article { margin-top:42px; }
.detail-content h2,.detail-aside h2 { font-size:clamp(30px,3vw,42px); line-height:1.15; margin-bottom:18px; }
.detail-content p+p { margin-top:16px; }
.detail-aside { background:#fff; border-top:3px solid var(--red); padding:30px; align-self:start; }
.detail-aside p { color:var(--muted); margin-bottom:20px; }
.detail-aside a:not(.button) { display:block; padding:12px 0; border-bottom:1px solid var(--line); }
.detail-main-grid { display:grid; grid-template-columns:minmax(0,2fr) minmax(250px,1fr); gap:64px; }
.project-faq { background:#fff; }
.project-faq h2 { line-height:1.08; }
.faq-list details { border-bottom:1px solid var(--line); padding:20px 0; }
.faq-list details:first-child { border-top:1px solid var(--line); }
.faq-list summary { cursor:pointer; font-weight:600; padding-right:12px; min-height:30px; }
.faq-list p { padding:14px 0 0; color:var(--muted); }
.faq-list a { color:var(--navy); text-decoration:underline; }
.phone-link { display:block; width:fit-content; margin-top:24px; font-size:28px; font-weight:700; line-height:1.4; color:var(--navy); }
.phone-link:hover { color:var(--red); }
.footer-service-links { display:flex; flex-wrap:wrap; gap:8px 24px; padding:24px 0; font-size:15px; color:#d6dce5; }
.footer-service-links a { padding:5px 0; }
.simple-copy { max-width:780px; }
.simple-copy h2 { font-size:40px; margin-bottom:20px; }
.simple-copy p+p { margin-top:20px; }
.simple-copy .button { margin-top:28px; }
@media (max-width:760px) {
  .detail-grid,.detail-main-grid { grid-template-columns:1fr; gap:36px; }
  .detail-hero { padding:30px 0 42px; }
  .detail-hero .lead { font-size:18px; }
  .detail-aside { padding:24px; }
  .footer-service-links { gap:8px 18px; }
}
.section {
  padding:90px 0;
}
.services {
  background:var(--paper);
}
.section-heading {
  display:flex;
  justify-content:space-between;
  gap:45px;
  align-items:flex-end;
  margin-bottom:42px;
}
h2 {
  font-size:clamp(42px,4.2vw,60px);
}
.section-heading>p {
  max-width:390px;
  font-size:18px;
  color:var(--muted);
  padding-bottom:4px;
}
.services-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  padding:1px;
  background:var(--line);
}
.service-card {
  padding:27px 24px 24px;
  min-height:282px;
  background:white;
  display:flex;
  flex-direction:column;
  transition:background .2s,box-shadow .2s;
}
.service-card:hover {
  background:#f8fafc;
  box-shadow:inset 0 -3px var(--red);
}
.card-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:35px;
}
.service-icon {
  color:var(--navy);
  display:flex;
}
.service-icon svg {
  width:31px;
  height:31px;
}
.card-number {
  font-size:13px;
  color:#98a1ad;
  font-variant-numeric:tabular-nums;
}
.service-card h3 {
  font-family:var(--heading);
  font-size:27px;
  line-height:1.15;
  font-weight:600;
}
.service-card>p {
  font-size:17px;
  color:var(--muted);
  margin-top:10px;
  margin-bottom:26px;
}
.card-bottom {
  border-top:1px solid #e9ebee;
  padding-top:18px;
  margin-top:auto;
  display:flex;
  align-items:flex-end;
  gap:16px;
  justify-content:space-between;
}
.card-bottom>span:first-child {
  font-size:14px;
  line-height:1.8;
  color:var(--muted);
  max-width:26ch;
}
.arrow {
  font-size:24px;
  color:var(--red);
}
.standards {
  display:grid;
  grid-template-columns:1fr 1fr;
  background:var(--ink);
  color:#fff;
}
.standards-copy {
  padding:76px max(45px,calc((100vw - 1280px)/2)) 72px max(56px,calc((100vw - 1280px)/2));
  padding-right:60px;
}
.standards-copy h2 {
  font-size:clamp(40px,3.5vw,51px);
  line-height:1.1;
}
.standards-copy>p:not(.eyebrow) {
  max-width:460px;
  font-size:18px;
  color:#bac6d7;
  margin:24px 0 31px;
}
.standard-row {
  display:flex;
  gap:22px;
  padding:18px 0;
  border-top:1px solid #ffffff20;
}
.standard-row>span {
  font-family:var(--heading);
  font-size:23px;
  color:#9dabc0;
}
.standard-row h3 {
  font-size:17px;
  font-weight:600;
}
.standard-row p {
  font-size:16px;
  color:#b2bed0;
  margin-top:4px;
}
.standards-image {
  position:relative;
  min-height:620px;
  overflow:hidden;
}
.standards-image :is(img, canvas.rack-lights) {
  width:100%;
  height:100%;
  position:absolute;
  object-fit:cover;
  object-position:88% center;
  transform:scale(1.35);
  transform-origin:85% 50%;
}
.standards-image:after {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(0deg,#071321cc,transparent 35%);
}
.standards-image figcaption {
  position:absolute;
  bottom:27px;
  left:29px;
  right:29px;
  z-index:1;
  display:flex;
  justify-content:space-between;
  gap:12px;
  font-size:12px;
  letter-spacing:1.25px;
  color:#d9e1ec;
}
.standards-image figcaption span:last-child {
  font-size:12px;
  opacity:.7;
}
.about-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:80px;
  align-items:center;
}
.about-mark {
  border-right:1px solid var(--line);
}
.motto {
  font-family:var(--heading);
  font-size:clamp(65px,8.5vw,120px);
  font-weight:700;
  line-height:.82;
  letter-spacing:-2px;
  color:var(--ink);
  margin:38px 0 26px;
}
.motto>span {
  color:var(--red);
}
.about-mark>p:last-child {
  font-size:16px;
  color:var(--muted);
}
.about-copy h2 {
  font-size:42px;
  line-height:1.08;
  margin-bottom:25px;
}
.about-copy>p {
  font-size:18px;
  color:var(--muted);
  margin-top:16px;
}
.values {
  display:flex;
  flex-wrap:wrap;
  gap:20px;
  margin-top:27px;
  font-size:12px;
  font-weight:700;
  letter-spacing:1.2px;
}
.values span+span {
  padding-left:20px;
  border-left:1px solid var(--line);
}
.contact {
  background:var(--paper);
  border-top:1px solid var(--line);
}
.contact-grid {
  display:grid;
  grid-template-columns:1fr 1.15fr;
  gap:75px;
}
.contact-copy>p:not(.eyebrow) {
  font-size:18px;
  color:var(--muted);
  max-width:370px;
  margin-top:23px;
}
.email-link {
  display:inline-flex;
  align-items:center;
  gap:20px;
  border-bottom:1px solid #bac1cb;
  font-size:17px;
  margin-top:30px;
  padding-bottom:8px;
  word-break:break-word;
}
.email-link>span {
  color:var(--red);
  font-size:22px;
}
.service-area {
  margin-top:23px;
  display:flex;
  gap:10px;
  align-items:center;
  font-size:12px;
  letter-spacing:1.2px;
  font-weight:600;
}
.contact-form {
  background:#fff;
  padding:32px;
  border:1px solid var(--line);
}
.contact-form h3 {
  font-family:var(--heading);
  font-weight:600;
  font-size:28px;
  margin-bottom:22px;
}
.form-row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
}
.form-group {
  margin-bottom:17px;
}
.form-group label {
  display:block;
  font-size:15px;
  font-weight:600;
  margin-bottom:7px;
}
.form-group label span {
  font-weight:400;
  color:var(--muted);
}
input,select,textarea {
  width:100%;
  min-width:0;
  background:#fff;
  border:1px solid #d7dde4;
  border-radius:0;
  padding:11px 12px;
  color:var(--ink);
  font-size:17px;
  outline:none;
}
input:focus,select:focus,textarea:focus {
  border-color:var(--navy);
  box-shadow:0 0 0 2px #25406b18;
}
textarea {
  resize:vertical;
  min-height:88px;
}
input::placeholder,textarea::placeholder {
  color:#657080;
}
.form-submit {
  width:100%;
  min-height:48px;
}
.form-note {
  font-size:14px;
  line-height:1.5;
  color:var(--muted);
  margin-top:12px;
}
.footer {
  background:var(--deep);
  color:#c0cbda;
  padding-top:39px;
}
.footer-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  padding-bottom:32px;
}
.footer-logo {
  padding:10px 16px;
}
.footer-logo img {
  width:260px;
  height:auto;
}
.footer-top>p {
  font-size:16px;
  margin-right:auto;
  margin-left:20px;
}
.footer-bottom {
  display:flex;
  justify-content:space-between;
  gap:20px;
  border-top:1px solid #ffffff20;
  padding:20px 0;
  font-size:14px;
  color:#99a8bc;
}
.footer-bottom>span:last-child {
  font-size:12px;
  letter-spacing:1.5px;
}
@media(min-width:1600px) {
  .hero-inner {
    padding-top:100px;
  }
  .hero-bottom {
    margin-top:100px;
  }
  .hero-photo {
    object-position:65% 50%;
  }
}
@media(max-width:1100px) {
  .container {
    width:calc(100% - 64px);
  }
  .nav-menu {
    gap:24px;
  }
  .hero-inner {
    padding-top:65px;
  }
  .hero-bottom {
    margin-top:65px;
  }
  .hero-copy {
    max-width:580px;
  }
  .hero-shade {
    background:linear-gradient(90deg,#081322f2 0%,#081322bd 43%,#08132222 100%);
  }
  .trust-grid>div {
    padding-left:20px;
    gap:13px;
  }
  .service-card {
    padding:24px 18px;
  }
  .services-grid {
    grid-template-columns:repeat(2,1fr);
  }
  .service-card {
    min-height:260px;
  }
  .standards-copy {
    padding:60px 32px;
  }
  .standards-image {
    min-height:610px;
  }
  .about-grid {
    gap:45px;
  }
  .contact-grid {
    gap:38px;
  }
  .contact-form {
    padding:26px;
  }
  .form-row {
    grid-template-columns:1fr;
    gap:0;
  }
  .hero-detail {
    display:none;
  }
}
@media(max-width:1100px) {
  .nav-container {
    height:78px;
  }
  .nav-logo img {
    width:173px;
  }
  .nav-toggle {
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:6px;
    width:42px;
    height:42px;
    border:1px solid var(--line);
    background:white;
    padding:10px;
  }
  .nav-toggle>span {
    display:block;
    height:2px;
    width:20px;
    background:var(--ink);
    transition:transform .2s;
  }
  .nav-toggle[aria-expanded=true]>span:first-child {
    transform:translateY(4px) rotate(45deg);
  }
  .nav-toggle[aria-expanded=true]>span:last-child {
    transform:translateY(-4px) rotate(-45deg);
  }
  .nav-menu {
    display:none;
    position:absolute;
    top:100%;
    left:0;
    right:0;
    background:white;
    padding:15px 20px 25px;
    box-shadow:0 20px 30px #09122226;
    align-items:stretch;
    gap:0;
  }
  .nav-menu.open {
    display:flex;
    flex-direction:column;
  }
  .nav-menu>a:not(.button) {
    padding:14px 0;
    border-bottom:1px solid var(--line);
  }
  .nav-cta {
    margin:15px 0 0;
    align-self:flex-start;
  }
}
@media(max-width:900px) {
  .contact-grid {
    grid-template-columns:1fr;
  }
}
@media(max-width:760px) {
  html {
    scroll-padding-top:80px;
  }
  .container {
    width:calc(100% - 40px);
  }
  .utility-bar {
    font-size:12px;
    letter-spacing:1.1px;
  }
  .utility-bar .container {
    justify-content:center;
  }
  .utility-bar .container>span:last-child {
    display:none;
  }
  .hero-inner {
    padding-top:58px;
  }
  .hero-photo {
    object-position:72% center;
  }
  .hero-shade {
    background:linear-gradient(90deg,#081322ee 0%,#081322ab 65%,#08132280),linear-gradient(0deg,#081322bb,transparent);
  }
  h1 {
    font-size:67px;
    letter-spacing:-.5px;
  }
  .hero-copy {
    max-width:520px;
  }
  .eyebrow {
    font-size:13px;
    letter-spacing:1.3px;
    margin-bottom:22px;
  }
  .hero-description {
    font-size:18px;
    max-width:520px;
    margin-top:24px;
  }
  .hero-actions {
    gap:23px;
    flex-wrap:wrap;
    margin-top:27px;
  }
  .button {
    padding:15px 19px;
    font-size:14px;
    gap:20px;
  }
  .text-link {
    font-size:16px;
    gap:13px;
  }
  .hero-bottom {
    flex-wrap:wrap;
    margin-top:50px;
    padding:20px 0;
    font-size:12px;
    letter-spacing:1.1px;
  }
  .trust-grid {
    grid-template-columns:1fr;
    padding:8px 0;
  }
  .trust-grid>div,.trust-grid>div:first-child {
    padding:16px 0;
    border-left:0;
    border-bottom:1px solid var(--line);
    gap:19px;
  }
  .trust-grid>div:last-child {
    border-bottom:0;
  }
  .trust-symbol {
    width:29px;
    text-align:center;
    font-size:25px;
  }
  .trust-grid strong {
    font-size:17px;
  }
  .trust-grid p>span {
    font-size:15px;
  }
  .section {
    padding:61px 0;
  }
  .section-heading {
    display:block;
    margin-bottom:30px;
  }
  .section-heading>p {
    margin-top:22px;
    max-width:460px;
    font-size:18px;
  }
  h2 {
    font-size:46px;
  }
  .services-grid {
    grid-template-columns:1fr;
  }
  .service-card {
    padding:22px 17px;
    min-height:265px;
  }
  .card-top {
    margin-bottom:26px;
  }
  .service-card h3 {
    font-size:25px;
  }
  .service-card>p {
    font-size:17px;
  }
  .card-bottom {
    gap:7px;
  }
  .card-bottom>span:first-child {
    font-size:14px;
  }
  .standards {
    grid-template-columns:1fr;
  }
  .standards-copy {
    padding:60px 20px 40px;
  }
  .standards-copy h2 {
    font-size:45px;
  }
  .standards-copy>p:not(.eyebrow) {
    max-width:520px;
  }
  .standards-image {
    min-height:390px;
  }
  .standards-image :is(img, canvas.rack-lights) {
    object-position:90% center;
    transform:scale(1.1);
  }
  .standards-image figcaption {
    flex-wrap:wrap;
    left:20px;
    right:20px;
    font-size:12px;
  }
  .about-grid {
    grid-template-columns:1fr;
    gap:37px;
  }
  .about-mark {
    border-right:0;
    border-bottom:1px solid var(--line);
    padding-bottom:35px;
  }
  .motto {
    font-size:92px;
    margin:30px 0 24px;
  }
  .about-copy h2 {
    font-size:39px;
  }
  .values {
    flex-wrap:wrap;
    gap:10px;
    font-size:12px;
    letter-spacing:.8px;
  }
  .values span+span {
    padding-left:10px;
  }
  .contact-grid {
    grid-template-columns:1fr;
    gap:34px;
  }
  .contact-copy>p:not(.eyebrow) {
    font-size:18px;
  }
  .email-link {
    font-size:17px;
    margin-top:25px;
  }
  .contact-form {
    padding:24px 20px;
  }
  .form-row {
    grid-template-columns:1fr;
    gap:0;
  }
  .form-group label {
    font-size:15px;
  }
  input,select,textarea {
    font-size:17px;
  }
  .footer-top {
    flex-wrap:wrap;
    gap:23px;
    padding-bottom:27px;
  }
  .footer-top>p {
    font-size:16px;
    margin:0;
  }
  .footer-top>.text-link {
    width:100%;
  }
  .footer-logo img {
    width:220px;
  }
  .footer-bottom {
    flex-direction:column;
    gap:9px;
    padding:20px 0;
  }
  .footer-bottom>span {
    font-size:14px;
  }
}
@media(max-width:380px) {
  h1 {
    font-size:58px;
  }
  .hero-actions {
    gap:20px;
  }
  .hero-actions .text-link {
    padding:3px 0;
  }
  .services-grid {
    grid-template-columns:1fr;
  }
  .service-card {
    min-height:auto;
  }
  .form-row {
    grid-template-columns:1fr;
    gap:0;
  }
  .values {
    flex-wrap:wrap;
  }
  .contact-copy h2 {
    font-size:42px;
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  *,*:before,*:after {
    transition:none!important;
  }
}

/* Networking leads; the full service range remains easy to scan. */
.service-featured {
  grid-column:span 2;
  background:var(--ink);
  color:white;
}
.service-featured:hover { background:var(--navy); }
.service-featured .service-icon, .service-featured .arrow { color:white; }
.service-featured .card-number, .service-featured>p,
.service-featured .card-bottom>span:first-child { color:#c5d0df; }
.service-featured>p { max-width:440px; }
.service-featured .card-bottom { border-color:#ffffff30; }
.service-featured .card-bottom>span:first-child { max-width:none; }
@media(max-width:760px) {
  .service-featured { grid-column:auto; }
}

/* Canvases share the photographs' sizing, crop and transforms at every breakpoint. */
.rack-lights { pointer-events:none; }


/* Match the dimmed room before the optional animation finishes loading. */
img.hero-photo, .standards-image img { filter:brightness(.7); }

/* Editorial pages share the site's palette and keep long-form text readable. */
.guide-teaser { border-top:1px solid var(--line); background:#fff; }
.guide-teaser-grid { display:grid; grid-template-columns:1fr 1.15fr; gap:70px; align-items:center; }
.guide-teaser-grid>div>p:not(.eyebrow) { margin:20px 0; color:var(--muted); }
.guide-teaser-card { padding:36px; background:var(--paper); border-top:3px solid var(--red); }
.guide-teaser-card h3 { font:600 36px/1.12 var(--heading); margin-bottom:18px; }
.guide-teaser-card>p:not(.eyebrow) { color:var(--muted); margin-bottom:24px; }
.guides-list { background:var(--paper); }
.guide-card { display:grid; grid-template-columns:.85fr 1.15fr; background:#fff; border:1px solid var(--line); }
.guide-card+.guide-card { margin-top:32px; }
.guide-card-visual { background:var(--navy); color:#fff; padding:38px; position:relative; overflow:hidden; display:flex; flex-direction:column; justify-content:space-between; min-height:390px; }
.guide-card-visual>span { letter-spacing:2px; font-size:13px; color:#d0daea; }
.guide-card-visual strong { font:600 clamp(48px,5vw,72px)/.96 var(--heading); position:relative; }
.guide-diagram { position:absolute; width:190px; height:300px; right:-45px; top:35px; transform:rotate(-25deg); }
.guide-diagram i { display:block; height:28px; border:1px solid #ffffff38; margin:12px; background:repeating-linear-gradient(90deg,transparent 0 12px,#ffffff30 12px 14px,transparent 14px 22px); }
.guide-diagram i:nth-child(3) { border-color:#d5305a; }
.guide-card-copy { padding:46px; }
.guide-card-copy h2 { font-size:clamp(32px,3.3vw,48px); line-height:1.1; margin-bottom:20px; }
.guide-card-copy>p:not(.eyebrow) { color:var(--muted); font-size:18px; }
.guide-card-meta,.article-meta { display:flex; gap:20px; flex-wrap:wrap; font-size:14px; }
.guide-card-meta { margin:25px 0; color:var(--muted); }
.guide-hero .eyebrow { margin-top:30px; }
.guide-hero h1 { max-width:900px; }
.article-meta { margin-top:26px; color:#c5d0df; }
.article-meta a { text-decoration:underline; text-underline-offset:4px; }
.article-layout { display:grid; grid-template-columns:minmax(0,760px) minmax(220px,1fr); gap:80px; align-items:start; }
.article-copy { font-size:18px; line-height:1.85; }
.article-copy .article-intro { font-size:20px; line-height:1.7; color:var(--ink); }
.article-copy p { margin-bottom:20px; }
.article-copy section { margin-top:42px; scroll-margin-top:130px; }
.article-copy h2 { font-size:36px; line-height:1.15; margin-bottom:22px; }
.article-copy a:not(.button) { color:var(--navy); text-decoration:underline; text-underline-offset:3px; }
.article-checklist { padding:30px; background:var(--paper); border-left:3px solid var(--red); }
.article-checklist ul { padding-left:22px; }
.article-checklist li+li { margin-top:12px; }
.article-sidebar { border-top:3px solid var(--red); padding-top:26px; }
.article-sidebar nav>a { display:block; font-size:16px; line-height:1.6; padding:13px 0; border-bottom:1px solid var(--line); }
.article-help { margin-top:34px; padding:24px; background:var(--paper); }
.article-help h2 { font-size:28px; line-height:1.1; margin-bottom:16px; }
.article-help p { font-size:16px; color:var(--muted); margin-bottom:18px; }
@media (max-width:900px) { .article-layout { gap:35px; grid-template-columns:minmax(0,1fr) 220px; } .guide-card-copy { padding:30px; } }
@media (max-width:760px) {
  .guide-teaser-grid,.guide-card,.article-layout { grid-template-columns:1fr; gap:30px; }
  .guide-teaser-card,.guide-card-copy { padding:26px; }
  .guide-teaser-card h3 { font-size:32px; }
  .guide-card { gap:0; }
  .guide-card-visual { min-height:260px; padding:28px; }
  .guide-card-copy h2 { font-size:36px; }
  .article-copy { font-size:18px; }
  .article-copy .article-intro { font-size:18px; }
  .article-copy h2 { font-size:32px; }
  .article-checklist { padding:24px; }
  .article-sidebar { grid-row:1; }
  .article-help { display:none; }
  .article-meta { gap:12px 20px; }
}
