@font-face {
  font-family:Montserrat;
  src:url('./assets/montserrat-400.woff') format('woff');
  font-style:normal;
  font-weight:400;
  font-display:swap
}

@font-face {
  font-family:Montserrat;
  src:url('./assets/montserrat-500.woff') format('woff');
  font-style:normal;
  font-weight:500 900;
  font-display:swap
}

:root {
  --blue:#1D4F6F;
  --teal:#22A7A8;
  --orange:#F7742B;
  --yellow:#FAC911;
  --ink:#193440;
  --muted:#60727e;
  --pale:#f5f8fa;
  --line:#dce7ec;
  --container:1120px
}

* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:108px
}
body {
  margin:0;
  color:var(--ink);
  font-family:Montserrat,Arial,sans-serif;
  font-size:15px;
  line-height:1.75;
  background:#fff
}
a {
  color:inherit;
  text-decoration:none
}
button {
  font:inherit
}
img {
  max-width:100%;
  display:block
}
svg {
  display:block
}
h1,h2,h3,p {
  margin:0
}
h1,h2,h3 {
  font-weight:500;
  line-height:1.18
}
h2 {
  font-size:clamp(32px,3.4vw,44px);
  letter-spacing:-1.6px
}
a,button {
  -webkit-tap-highlight-color:transparent
}
a:focus-visible,button:focus-visible {
  outline:3px solid var(--orange);
  outline-offset:6px
}
.container {
  width:min(var(--container),calc(100% - 88px));
  margin:0 auto
}
.section {
  padding:100px 0
}
.skip-link {
  position:fixed;
  top:-100px;
  left:20px;
  z-index:200;
  padding:10px 18px;
  background:#fff;
  color:var(--blue)
}
.skip-link:focus {
  top:12px
}

.site-header {
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(255,255,255,.98);
  border-bottom:1px solid #e9eff2
}
.header-inner {
  height:90px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px
}
.brand {
  flex-shrink:0
}
.brand img {
  width:244px;
  height:auto
}
.site-nav {
  display:flex;
  align-items:center;
  gap:34px
}
.site-nav>a {
  position:relative;
  font-size:11px;
  font-weight:500;
  text-transform:uppercase;
  letter-spacing:1.5px;
  color:#405b69;
  white-space:nowrap
}
.site-nav>a:not(.header-contact)::after {
  content:'';
  position:absolute;
  left:0;
  right:100%;
  height:2px;
  bottom:-8px;
  background:var(--orange);
  transition:right .2s
}
.site-nav>a:hover::after,.site-nav>a.active::after {
  right:0
}
.site-nav .header-contact {
  display:flex;
  gap:14px;
  align-items:center;
  background:var(--blue);
  color:white;
  padding:12px 19px;
  border-radius:28px;
  transition:background .2s
}
.header-contact:hover {
  background:#176579
}
.header-contact svg {
  width:16px;
  height:16px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7
}
.menu-toggle {
  display:none
}

.hero {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  color:#fff;
  background:radial-gradient(ellipse at 85% 25%,#22698766,transparent 55%),linear-gradient(120deg,#143c55 0%,var(--blue) 75%,#17445f 100%)
}
.hero::after {
  content:'';
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:4px;
  background:linear-gradient(var(--orange),var(--yellow))
}
.hero-grid {
  position:absolute;
  inset:0;
  z-index:-1;
  opacity:.22;
  background-image:linear-gradient(#91b1c52b 1px,transparent 1px),linear-gradient(90deg,#91b1c52b 1px,transparent 1px);
  background-size:54px 54px;
  mask-image:linear-gradient(#000,transparent 90%)
}
.hero-inner {
  min-height:730px;
  padding-top:72px;
  padding-bottom:78px;
  display:grid;
  grid-template-columns:1.18fr 1fr;
  gap:34px;
  align-items:center
}
.eyebrow {
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:500;
  font-size:10px;
  line-height:1.6;
  letter-spacing:1.9px;
  text-transform:uppercase;
  color:var(--blue);
  margin-bottom:23px
}
.eyebrow.light {
  color:#bdd4e1;
  font-size:9px;
  letter-spacing:1.6px
}
.status-dot {
  display:inline-block;
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--orange);
  box-shadow:0 0 0 4px #f7742b13;
  flex-shrink:0
}
.hero h1 {
  font-size:clamp(48px,4.8vw,66px);
  letter-spacing:-2.8px;
  line-height:1.085;
  margin-left:-3px
}
.hero h1>span {
  display:block;
  color:#91d7d5;
  margin-top:6px
}
.hero-description {
  max-width:510px;
  font-size:15px;
  line-height:1.9;
  color:#d1e0e8;
  margin-top:28px
}
.hero-actions {
  display:flex;
  align-items:center;
  gap:13px;
  flex-wrap:wrap;
  margin-top:31px
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:20px;
  min-height:49px;
  padding:12px 21px;
  border:1px solid transparent;
  border-radius:30px;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:1px;
  font-weight:500;
  transition:transform .2s,background .2s,box-shadow .2s
}
.button svg {
  width:17px;
  height:17px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7
}
.button:hover {
  transform:translateY(-2px)
}
.button-warm {
  background:linear-gradient(110deg,var(--orange),var(--yellow));
  color:#173c52;
  box-shadow:0 8px 24px #f7742b20
}
.button-warm:hover {
  box-shadow:0 10px 28px #f7742b44
}
.button-outline {
  border-color:#ffffff48;
  color:#edf5f8
}
.button-outline:hover {
  background:#ffffff0c;
  border-color:#ffffff89
}

.hero-art {
  position:relative;
  aspect-ratio:1;
  width:100%;
  max-width:475px;
  justify-self:end;
  margin-bottom:3px
}
.connection-lines {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  stroke:#aacbd335;
  stroke-width:1.1
}
.connection-lines circle:nth-child(2) {
  stroke:#bad8dd4a
}
.connection-lines circle:nth-child(3) {
  stroke:#b4d4dc5c
}
.connection-lines .circuit {
  stroke:#91c4cf58;
  stroke-width:1.4
}
.connection-lines .node {
  fill:var(--orange);
  stroke:#f7742b35;
  stroke-width:15
}
.connection-lines .node.teal {
  fill:#63cccc;
  stroke:#22a7a82a
}
.connection-lines .node.yellow {
  fill:var(--yellow);
  stroke:#fac91120;
  stroke-width:8
}
.brand-core {
  position:absolute;
  left:50%;
  top:50%;
  width:184px;
  height:184px;
  transform:translate(-50%,-50%);
  border-radius:50%;
  display:grid;
  place-items:center;
  background:radial-gradient(circle,#ffffff07,#ffffff00);
  box-shadow:0 0 60px #22a7a813
}
.brand-core img {
  width:138px;
  height:138px;
  opacity:.94
}
.art-label {
  position:absolute;
  display:flex;
  align-items:center;
  gap:8px;
  font-size:10px;
  letter-spacing:.2px;
  color:#d2e5eb;
  background:#1b4b66de;
  border:1px solid #b8d6df33;
  border-radius:30px;
  padding:7px 13px;
  box-shadow:0 8px 30px #0c304519;
  white-space:nowrap
}
.art-label i {
  width:5px;
  height:5px;
  background:var(--teal);
  border-radius:50%
}
.art-label-one {
  left:6%;
  top:27%
}
.art-label-one i {
  background:var(--yellow)
}
.art-label-two {
  right:0;
  top:51%
}
.art-label-three {
  left:17%;
  bottom:16%
}
.art-label-three i {
  background:var(--orange)
}
.art-caption {
  position:absolute;
  bottom:-28px;
  width:100%;
  text-align:center;
  color:#9fbfce;
  font-size:10px;
  letter-spacing:.2px
}

.services {
  position:relative;
  overflow:hidden;
  background:#f8fafb
}
.section-rings {
  position:absolute;
  width:480px;
  height:480px;
  border:1px solid #d8e9ef8f;
  border-radius:50%;
  right:-195px;
  top:-295px;
  pointer-events:none
}
.section-rings::before,.section-rings::after {
  content:'';
  position:absolute;
  inset:48px;
  border:1px solid #d8e9efb0;
  border-radius:50%
}
.section-rings::after {
  inset:98px
}
.section-intro {
  position:relative;
  max-width:610px;
  margin-bottom:45px
}
.section-intro .eyebrow {
  margin-bottom:13px
}
.section-intro>p:last-child {
  font-size:16px;
  color:var(--muted);
  line-height:1.85;
  margin-top:20px;
  max-width:570px
}
.service-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px
}
.service-card {
  position:relative;
  overflow:hidden;
  background:#fff;
  border:1px solid #dce6ec;
  border-radius:15px;
  padding:28px 27px 31px;
  box-shadow:0 7px 18px #153b5307;
  transition:transform .23s,border-color .23s,box-shadow .23s
}
.service-card::after {
  content:'';
  position:absolute;
  width:150px;
  height:150px;
  border:1px solid #1d4f6f0a;
  border-radius:50%;
  right:-77px;
  bottom:-80px;
  pointer-events:none
}
.service-card:hover {
  border-color:#66b5be;
  transform:translateY(-4px);
  box-shadow:0 15px 35px #153b5310
}
.service-featured {
  grid-column:span 2;
  border-color:#7ebfc6;
  background:linear-gradient(135deg,#fff,#fcfefe)
}
.service-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:23px
}
.service-number {
  display:grid;
  place-items:center;
  width:43px;
  height:43px;
  border:1px solid #dbe9ef;
  border-radius:50%;
  font-size:12px;
  color:var(--blue);
  font-weight:500;
  position:relative
}
.service-number::after {
  content:'';
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--orange);
  position:absolute;
  right:1px;
  top:1px
}
.service-top>svg {
  width:28px;
  height:28px;
  fill:none;
  stroke:#8baab8;
  stroke-width:1.35;
  stroke-linecap:round;
  stroke-linejoin:round
}
.service-card h3 {
  font-size:18px;
  letter-spacing:-.35px;
  margin-bottom:12px;
  position:relative
}
.service-card p {
  font-size:14px;
  line-height:1.85;
  color:#657681;
  position:relative;
  max-width:630px
}
.service-note {
  font-size:12px;
  color:#36838b;
  display:block;
  margin-top:17px
}

.about {
  background:#fff
}
.about-grid {
  display:grid;
  grid-template-columns:.94fr 1.15fr;
  gap:100px
}
.about-heading .eyebrow {
  margin-bottom:22px
}
.about h2 {
  font-size:35px;
  line-height:1.28;
  letter-spacing:-1.4px
}
.about h2 span {
  color:#698594
}
.about-copy {
  padding-top:7px;
  color:#657681;
  font-size:14px;
  line-height:1.95
}
.about-copy p+p {
  margin-top:18px
}
.about-copy .about-lead {
  font-size:18px;
  line-height:1.65;
  color:var(--blue)
}
.protocols {
  display:flex;
  align-items:center;
  gap:32px;
  padding-top:28px;
  margin-top:27px;
  border-top:1px solid var(--line)
}
.protocols img {
  object-fit:contain;
  height:auto;
  max-height:45px
}
.protocol-bacnet {
  width:112px
}
.protocol-knx {
  width:63px
}
.protocol-modbus {
  width:117px
}

.contact {
  position:relative;
  background:var(--blue);
  color:#fff;
  padding-top:78px;
  padding-bottom:80px;
  overflow:hidden
}
.contact::after {
  content:'';
  position:absolute;
  right:-240px;
  bottom:-440px;
  width:670px;
  height:670px;
  border:70px solid #ffffff04;
  border-radius:50%;
  pointer-events:none
}
.contact-grid {
  display:grid;
  grid-template-columns:1fr 1.05fr;
  gap:95px;
  align-items:center
}
.contact .eyebrow {
  margin-bottom:18px
}
.contact h2 {
  font-size:42px;
  line-height:1.2;
  letter-spacing:-1.7px
}
.contact p:not(.eyebrow):not(.phone-note) {
  max-width:390px;
  font-size:13px;
  line-height:1.9;
  color:#bfd2df;
  margin-top:21px
}
.contact-details {
  position:relative;
  z-index:1
}
.contact-email {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding-bottom:17px;
  margin-bottom:17px;
  border-bottom:1px solid #ffffff30;
  font-size:clamp(17px,1.7vw,23px);
  letter-spacing:-.6px;
  font-weight:500;
  transition:color .2s
}
.contact-email:hover {
  color:var(--yellow)
}
.contact-email svg {
  width:23px;
  height:23px;
  stroke:var(--yellow);
  fill:none;
  stroke-width:1.5;
  flex-shrink:0
}
.contact-phone {
  font-size:19px;
  font-weight:500;
  letter-spacing:.1px
}
.contact-phone:hover {
  color:var(--yellow)
}
.phone-note {
  font-size:9px;
  color:#a8c3d3;
  margin-top:3px
}
.contact address {
  font-style:normal;
  font-size:12px;
  color:#c3d5e0;
  line-height:1.8;
  margin-top:21px
}
.site-footer {
  background:#fff;
  border-top:1px solid #e8eef1
}
.footer-inner {
  display:flex;
  align-items:center;
  gap:35px;
  padding-top:30px;
  padding-bottom:30px
}
.footer-inner img {
  width:198px;
  height:auto
}
.footer-inner>p {
  font-size:10px;
  color:#7c909c
}
.footer-inner .copyright {
  margin-left:auto;
  white-space:nowrap;
  font-size:10px
}

@media(min-width:1500px) {
  .hero-inner {
    min-height:760px
  }
  .hero h1 {
    font-size:70px
  }
  .hero-art {
    max-width:490px
  }

}

@media(max-width:1050px) {
  .container {
    width:calc(100% - 64px)
  }
  .hero-inner {
    gap:8px;
    grid-template-columns:1.15fr .9fr
  }
  .hero h1 {
    font-size:54px
  }
  .hero-art {
    max-width:370px
  }
  .brand-core {
    width:150px;
    height:150px
  }
  .brand-core img {
    width:114px;
    height:114px
  }
  .hero-description {
    font-size:14px
  }
  .hero-actions {
    gap:9px
  }
  .button {
    font-size:9px;
    gap:13px;
    padding:12px 16px
  }
  .eyebrow.light {
    font-size:8px;
    letter-spacing:1.3px
  }
  .about-grid {
    gap:55px
  }
  .service-card {
    padding:24px 22px
  }
  .service-card h3 {
    font-size:17px
  }
  .contact-grid {
    gap:55px
  }
  .site-nav {
    gap:25px
  }
  .brand img {
    width:220px
  }

}

@media(max-width:820px) {
  html {
    scroll-padding-top:97px
  }
  .container {
    width:calc(100% - 48px)
  }
  .header-inner {
    height:80px
  }
  .brand img {
    width:211px
  }
  .site-nav {
    gap:18px
  }
  .site-nav>a {
    font-size:10px;
    letter-spacing:1px
  }
  .site-nav .header-contact {
    padding:10px 14px
  }
  .header-contact svg {
    display:none
  }
  .hero-inner {
    min-height:0;
    padding-top:65px;
    padding-bottom:70px;
    grid-template-columns:1fr
  }
  .hero-art {
    display:none
  }
  .hero h1 {
    font-size:60px
  }
  .hero-description {
    max-width:560px;
    font-size:15px
  }
  .eyebrow.light {
    font-size:9px
  }
  .hero-actions {
    gap:12px
  }
  .button {
    font-size:10px;
    padding:12px 20px
  }
  .section {
    padding-top:76px;
    padding-bottom:76px
  }
  .service-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .service-featured {
    grid-column:span 2
  }
  .section-intro {
    margin-bottom:32px
  }
  .about-grid {
    grid-template-columns:1fr;
    gap:30px
  }
  .about h2 {
    font-size:35px;
    max-width:540px
  }
  .about-copy {
    max-width:620px
  }
  .contact-grid {
    gap:40px;
    grid-template-columns:1fr 1fr
  }
  .contact h2 {
    font-size:34px
  }
  .contact-email {
    font-size:16px;
    letter-spacing:-.5px
  }
  .contact-phone {
    font-size:17px
  }
  .footer-inner {
    gap:22px
  }
  .footer-inner>p:not(.copyright) {
    max-width:150px
  }

}

@media(max-width:640px) {
  .container {
    width:calc(100% - 40px)
  }
  .header-inner {
    height:76px
  }
  .brand img {
    width:196px
  }
  .menu-toggle {
    display:flex;
    flex-direction:column;
    gap:6px;
    align-items:center;
    justify-content:center;
    background:none;
    border:1px solid #dce7eb;
    border-radius:8px;
    width:40px;
    height:38px;
    color:var(--blue);
    cursor:pointer
  }
  .menu-toggle span {
    display:block;
    width:17px;
    height:1.5px;
    background:currentColor;
    transition:transform .2s
  }
  .menu-toggle[aria-expanded=true] span:first-child {
    transform:translateY(3.75px) rotate(45deg)
  }
  .menu-toggle[aria-expanded=true] span:last-child {
    transform:translateY(-3.75px) rotate(-45deg)
  }
  .site-nav {
    display:none;
    position:absolute;
    top:76px;
    left:0;
    right:0;
    background:#fff;
    padding:22px 20px 25px;
    border-bottom:1px solid var(--line);
    box-shadow:0 12px 20px #1934400a;
    align-items:stretch;
    gap:22px;
    flex-direction:column
  }
  .site-nav.open {
    display:flex
  }
  .site-nav>a {
    font-size:12px
  }
  .site-nav .header-contact {
    align-self:flex-start
  }
  .site-nav>a:not(.header-contact)::after {
    display:none
  }
  .hero-inner {
    padding-top:49px;
    padding-bottom:56px
  }
  .hero h1 {
    font-size:clamp(39px,10vw,55px);
    letter-spacing:-1.8px;
    line-height:1.12;
    margin-left:-1px
  }
  .eyebrow.light {
    font-size:7px;
    letter-spacing:1px;
    margin-bottom:22px;
    gap:9px;
    white-space:normal
  }
  .hero-description {
    font-size:13px;
    line-height:1.85;
    margin-top:24px
  }
  .hero-actions {
    align-items:stretch;
    gap:11px;
    margin-top:25px
  }
  .button {
    font-size:9px;
    min-height:46px;
    gap:12px;
    padding:11px 17px
  }
  .button svg {
    width:15px;
    height:15px
  }
  .section {
    padding-top:61px;
    padding-bottom:62px
  }
  .eyebrow {
    font-size:9px;
    letter-spacing:1.5px
  }
  .section-intro h2 {
    font-size:35px;
    letter-spacing:-1.2px
  }
  .section-intro>p:last-child {
    font-size:14px;
    line-height:1.8;
    margin-top:17px
  }
  .service-grid {
    grid-template-columns:1fr;
    gap:15px
  }
  .service-featured {
    grid-column:span 1
  }
  .service-card {
    padding:24px 23px 26px;
    border-radius:13px
  }
  .service-top {
    margin-bottom:20px
  }
  .service-card h3 {
    font-size:18px
  }
  .service-card p {
    font-size:14px
  }
  .service-note {
    font-size:11px
  }
  .about-grid {
    gap:25px
  }
  .about h2 {
    font-size:29px;
    line-height:1.3;
    letter-spacing:-1px
  }
  .about-copy {
    font-size:13px;
    line-height:1.9;
    padding-top:0
  }
  .about-copy .about-lead {
    font-size:16px
  }
  .protocols {
    gap:25px;
    justify-content:flex-start;
    padding-top:25px;
    margin-top:24px
  }
  .protocol-bacnet {
    width:95px
  }
  .protocol-knx {
    width:54px
  }
  .protocol-modbus {
    width:101px
  }
  .contact-grid {
    grid-template-columns:1fr;
    gap:36px
  }
  .contact h2 {
    font-size:36px
  }
  .contact p:not(.eyebrow):not(.phone-note) {
    font-size:13px
  }
  .contact-email {
    font-size:clamp(17px,5vw,23px);
    padding-bottom:15px
  }
  .contact-phone {
    font-size:19px
  }
  .contact address {
    font-size:12px
  }
  .footer-inner {
    gap:16px;
    flex-wrap:wrap;
    padding:25px 0
  }
  .footer-inner img {
    width:172px
  }
  .footer-inner>p:not(.copyright) {
    max-width:none;
    flex-basis:100%;
    order:3;
    font-size:9px
  }
  .footer-inner .copyright {
    font-size:9px;
    margin-left:auto
  }

}

@media(max-width:360px) {
  .container {
    width:calc(100% - 32px)
  }
  .hero-actions {
    flex-direction:column;
    align-items:flex-start
  }
  .protocols {
    gap:18px
  }
  .protocol-bacnet {
    width:85px
  }
  .protocol-knx {
    width:49px
  }
  .protocol-modbus {
    width:91px
  }
  .contact-email {
    font-size:17px
  }

}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*::before,*::after {
    transition:none!important;
    animation:none!important
  }

}

.careers {
  background:var(--pale);
  border-top:1px solid #e8eef2
}
.careers-grid {
  display:grid;
  grid-template-columns:.88fr 1.15fr;
  gap:100px;
  align-items:start
}
.careers-intro .eyebrow {
  margin-bottom:20px
}
.careers-intro h2 {
  font-size:42px;
  line-height:1.18
}
.careers-intro h2 span {
  color:var(--blue)
}
.careers-intro>p:not(.eyebrow) {
  font-size:15px;
  line-height:1.85;
  color:var(--muted);
  margin-top:25px;
  max-width:360px
}
.careers-intro .careers-note {
  font-size:13px!important;
  color:#7b8c96!important;
  margin-top:19px!important
}
.application-form {
  position:relative;
  padding:31px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:15px;
  box-shadow:0 8px 24px #153b5307
}
.form-row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:17px
}
.form-field {
  min-width:0;
  margin-bottom:19px
}
.form-field>label {
  display:block;
  color:var(--blue);
  font-size:11px;
  font-weight:500;
  line-height:1.5;
  margin-bottom:7px
}
.form-field>label>span[aria-hidden=true] {
  color:var(--teal)
}
.field-optional {
  font-weight:400;
  color:#7c8e99
}
.form-field input:not([type=file]),.form-field textarea {
  display:block;
  width:100%;
  font:inherit;
  font-size:14px;
  line-height:1.5;
  color:var(--ink);
  border:1px solid #d6e2e8;
  border-radius:7px;
  padding:11px 12px;
  background:#fbfdfe;
  transition:border-color .2s,box-shadow .2s
}
.form-field input:not([type=file]) {
  height:45px
}
.form-field textarea {
  min-height:116px;
  resize:vertical
}
.form-field input:focus,.form-field textarea:focus {
  border-color:var(--teal);
  box-shadow:0 0 0 3px #22a7a819;
  outline:none
}
.form-field textarea::placeholder {
  color:#91a1ab;
  font-size:12px
}
.form-privacy {
  font-size:10px;
  line-height:1.7;
  color:#80919c;
  margin-bottom:18px;
  max-width:440px
}
.form-privacy a {
  color:var(--blue);
  text-decoration:underline;
  text-underline-offset:2px
}
.application-submit {
  cursor:pointer;
  background:var(--blue);
  color:#fff;
  min-width:200px;
  justify-content:space-between
}
.application-submit:hover {
  background:#176579
}
.form-status {
  font-size:12px;
  line-height:1.8;
  margin-top:19px;
  padding:13px 15px;
  background:#fff5f2;
  color:#9a493c;
  border-radius:7px;
  border:1px solid #f0d5ce
}
.form-status[data-kind=info] {
  background:#f2f7fa;
  color:var(--blue);
  border-color:#d0e1eb
}
.company-address strong {
  display:block;
  color:#fff;
  font-size:13px;
  font-weight:500;
  line-height:1.7;
  margin-bottom:10px
}
.company-address>span {
  display:block
}
.company-address .company-phone {
  display:inline-block;
  font-size:16px;
  line-height:1.6;
  color:#fff;
  margin-top:11px;
  letter-spacing:.3px
}
.company-address .company-phone:hover {
  color:var(--yellow)
}

@media(max-width:1050px) {
  .careers-grid {
    gap:55px
  }
  .site-nav {
    gap:23px
  }
  .site-nav>a {
    letter-spacing:1px
  }

}

@media(max-width:820px) {
  .careers-grid {
    grid-template-columns:1fr;
    gap:31px
  }
  .careers-intro>p:not(.eyebrow) {
    max-width:560px
  }
  .careers-intro h2 {
    font-size:35px
  }
  .careers-intro h2 br {
    display:none
  }
  .application-form {
    max-width:650px
  }
  .site-nav {
    gap:15px
  }
  .site-nav>a {
    font-size:9px;
    letter-spacing:.7px
  }
  .site-nav .header-contact {
    padding:10px 13px
  }
  .company-address strong {
    font-size:12px
  }

}

@media(min-width:641px) and (max-width:760px) {
  .menu-toggle {
    display:flex;
    flex-direction:column;
    gap:6px;
    align-items:center;
    justify-content:center;
    background:none;
    border:1px solid #dce7eb;
    border-radius:8px;
    width:40px;
    height:38px;
    color:var(--blue);
    cursor:pointer
  }
  .menu-toggle span {
    display:block;
    width:17px;
    height:1.5px;
    background:currentColor;
    transition:transform .2s
  }
  .menu-toggle[aria-expanded=true] span:first-child {
    transform:translateY(3.75px) rotate(45deg)
  }
  .menu-toggle[aria-expanded=true] span:last-child {
    transform:translateY(-3.75px) rotate(-45deg)
  }
  .site-nav {
    display:none;
    position:absolute;
    top:80px;
    left:0;
    right:0;
    background:#fff;
    padding:22px 24px 25px;
    border-bottom:1px solid var(--line);
    box-shadow:0 12px 20px #1934400a;
    align-items:stretch;
    gap:22px;
    flex-direction:column
  }
  .site-nav.open {
    display:flex
  }
  .site-nav>a {
    font-size:12px
  }
  .site-nav .header-contact {
    align-self:flex-start
  }
  .site-nav>a:not(.header-contact)::after {
    display:none
  }

}

@media(max-width:640px) {
  .careers-grid {
    gap:25px
  }
  .careers-intro h2 {
    font-size:34px
  }
  .careers-intro>p:not(.eyebrow) {
    font-size:14px;
    margin-top:20px
  }
  .application-form {
    padding:23px 20px
  }
  .form-row {
    grid-template-columns:1fr;
    gap:0
  }
  .form-field input:not([type=file]),.form-field textarea {
    font-size:16px
  }
  .form-field>label {
    font-size:12px
  }
  .form-privacy {
    font-size:11px
  }
  .application-submit {
    width:100%;
    font-size:10px
  }
  .company-address strong {
    font-size:13px
  }
  .company-address .company-phone {
    font-size:18px
  }
  .site-nav>a {
    font-size:12px;
    letter-spacing:1px
  }

}


.company-address .company-call-note {
  display:block;
  margin-top:3px;
  font-size:11px;
  line-height:1.6;
  color:#c3d5e0;
  font-weight:400;
  letter-spacing:0
}
.site-footer {
  position:relative;
  isolation:isolate;
  overflow:clip;
  border-top:1px solid #dce7ec;
  background:#fff
}
.site-footer::after {
  content:'';
  position:absolute;
  z-index:-1;
  right:-158px;
  bottom:-212px;
  width:390px;
  height:390px;
  border:43px solid #f5f9fa;
  border-radius:50%;
  pointer-events:none
}
.footer-inner {
  position:relative;
  display:grid;
  grid-template-columns:244px 1fr auto;
  gap:58px;
  align-items:center;
  padding:46px 0 43px;
  min-height:187px
}
.footer-brand {
  display:block
}
.footer-inner .footer-brand img {
  width:244px;
  height:auto
}
.footer-message {
  border-left:1px solid #d9e6eb;
  padding-left:40px
}
.footer-kicker {
  font-size:8px;
  line-height:1.7;
  font-weight:500;
  letter-spacing:1.4px;
  text-transform:uppercase;
  color:#398c98;
  margin-bottom:9px
}
.footer-signature {
  font-size:19px;
  line-height:1.45;
  letter-spacing:-.35px;
  color:var(--blue);
  font-weight:400
}
.footer-meta {
  text-align:right
}
.footer-inner .copyright {
  margin:0;
  font-size:11px;
  font-weight:500;
  line-height:1.6;
  letter-spacing:.35px;
  color:var(--blue);
  white-space:nowrap
}
.footer-rights {
  font-size:10px;
  line-height:1.6;
  color:#708692;
  margin-top:4px
}
.footer-back {
  display:inline-flex;
  align-items:center;
  gap:11px;
  margin-top:15px;
  font-size:9px;
  line-height:1.4;
  letter-spacing:.4px;
  color:#6a8594
}
.footer-back>span {
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  border:1px solid #d5e5eb;
  border-radius:50%;
  color:var(--blue);
  background:#fff;
  transition:color .2s,border-color .2s,transform .2s
}
.footer-back svg {
  width:14px;
  height:14px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.5;
  stroke-linecap:round;
  stroke-linejoin:round
}
.footer-back:hover {
  color:var(--blue)
}
.footer-back:hover>span {
  border-color:var(--teal);
  color:var(--teal);
  transform:translateY(-2px)
}

@media(max-width:1050px) {
  .footer-inner {
    grid-template-columns:215px 1fr auto;
    gap:34px;
    padding:40px 0
  }
  .footer-inner .footer-brand img {
    width:215px
  }
  .footer-message {
    padding-left:28px
  }
  .footer-signature {
    font-size:17px
  }
  .footer-kicker {
    font-size:7px;
    letter-spacing:1px
  }

}

@media(max-width:820px) {
  .footer-inner {
    grid-template-columns:185px 1fr auto;
    gap:24px;
    padding:36px 0;
    min-height:176px
  }
  .footer-inner .footer-brand img {
    width:185px
  }
  .footer-message {
    padding-left:24px
  }
  .footer-kicker {
    max-width:220px;
    line-height:1.9
  }
  .footer-signature {
    font-size:16px
  }
  .footer-inner .copyright {
    font-size:10px
  }
  .footer-rights {
    font-size:9px
  }
  .footer-back {
    font-size:8px;
    gap:8px
  }

}

@media(max-width:640px) {
  .company-address .company-call-note {
    font-size:11px
  }
  .footer-inner {
    grid-template-columns:1fr;
    gap:27px;
    padding:34px 0 30px
  }
  .footer-inner .footer-brand img {
    width:219px
  }
  .footer-message {
    border-left:2px solid #91c8cf;
    padding-left:19px
  }
  .footer-kicker {
    font-size:7px;
    letter-spacing:1.1px;
    max-width:none;
    margin-bottom:8px
  }
  .footer-signature {
    font-size:18px
  }
  .footer-meta {
    text-align:left;
    display:grid;
    grid-template-columns:1fr auto;
    column-gap:18px;
    border-top:1px solid #e3edf1;
    padding-top:22px
  }
  .footer-inner .copyright {
    font-size:10px;
    margin:0
  }
  .footer-rights {
    font-size:9px;
    margin-top:4px;
    grid-column:1
  }
  .footer-back {
    grid-column:2;
    grid-row:1 / span 2;
    align-self:center;
    margin:0;
    font-size:8px;
    gap:8px
  }
  .footer-back>span {
    width:30px;
    height:30px
  }
  .site-footer::after {
    right:-210px;
    bottom:-230px;
    opacity:.7
  }

}


.application-attachment {
  display:flex;
  align-items:flex-start;
  gap:9px;
  margin:1px 0 15px;
  color:var(--blue);
  font-size:11px;
  line-height:1.7
}
.application-attachment svg {
  width:17px;
  height:17px;
  flex-shrink:0;
  margin-top:1px;
  fill:none;
  stroke:var(--teal);
  stroke-width:1.5;
  stroke-linecap:round;
  stroke-linejoin:round
}
.application-actions {
  display:flex;
  align-items:center;
  gap:21px;
  flex-wrap:wrap
}
.application-copy {
  padding:7px 0;
  background:none;
  border:0;
  color:#5c7d8d;
  font-size:10px;
  text-decoration:underline;
  text-underline-offset:4px;
  cursor:pointer
}
.application-copy:hover {
  color:var(--blue)
}
.application-copy-fallback {
  margin:17px 0 0
}
.application-copy-fallback[hidden] {
  display:none
}
.application-copy-fallback textarea {
  min-height:165px;
  font-size:12px
}
.form-status a {
  color:var(--blue);
  text-decoration:underline
}
.application-submit {
  min-width:222px
}

@media(max-width:640px) {
  .application-attachment {
    font-size:11px
  }
  .application-actions {
    gap:12px
  }
  .application-copy {
    font-size:11px
  }
  .application-copy-fallback textarea {
    font-size:16px
  }

}
