.traffic-page {
  background: #fff
}

.traffic-page .site-header {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  background: #1260ab;
  border-bottom-color: transparent
}

.traffic-page .site-header.scrolled {
  position: fixed;
  background: rgba(18, 96, 171, .97);
  box-shadow: 0 12px 35px rgba(4, 20, 31, .16);
  backdrop-filter: blur(12px)
}

.traffic-page .main-nav a {
  color: #fff
}

.traffic-page .main-nav a:hover,
.traffic-page .main-nav a.is-active {
  color: #eab800
}

.traffic-page .menu-button span {
  background: #fff
}

.traffic-hero {
  position: relative;
  display: flex;
  align-items: center;
  height: 380px;
  padding-top: 80px;
  overflow: hidden;
  background: #000;
  color: #fff;
  isolation: isolate
}

.traffic-hero:before {
  position: absolute;
  z-index: -1;
  inset: 80px 0 0;
  background: url('../images/figma-assets/about-hero-gradient.webp') 50% 43%/cover no-repeat;
  content: ""
}

.traffic-hero>.container {
  padding-top: 38px
}

.traffic-hero h1 {
  margin: 0 0 24px;
  font-size: 48px;
  font-weight: 700;
  line-height: 58px
}

.traffic-hero p {
  margin: 0;
  font-size: 18px;
  font-weight: 300;
  line-height: 27px
}

.checkpoint-section {
  padding: 112px 0;
  background: #fff
}

.checkpoint-tuas {
  background: #f3f4f4
}

.checkpoint-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  margin-bottom: 56px
}

.checkpoint-heading h2 {
  margin: 0;
  color: #353536;
  font-size: 48px;
  line-height: 58px;
  letter-spacing: -.02em
}

.checkpoint-heading a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 9px 14px;
  border: 1px solid #dedfe0;
  border-radius: 999px;
  background: #fff;
  color: #636566;
  font-size: 13px;
  font-weight: 500;
  line-height: 20px;
  transition: border-color .22s ease, color .22s ease
}

.checkpoint-heading a span {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #17a85b;
  box-shadow: 0 0 0 4px rgba(23, 168, 91, .12)
}

.checkpoint-heading a:hover {
  border-color: #eab800;
  color: #353536
}

.traffic-card-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 48px 24px
}

.camera-card,
.route-card {
  min-width: 0;
  margin: 0;
  text-align: center
}

.camera-media,
.route-map {
  position: relative;
  display: block;
  width: 100%;
  overflow: hidden;
  border-radius: 20px;
  background: #d8d9da
}

.camera-media {
  aspect-ratio: 16/9
}

.camera-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 650ms cubic-bezier(.22, 1, .36, 1), filter .3s ease
}

.camera-media:hover img {
  transform: scale(1.025);
  filter: saturate(1.06)
}

.live-badge {
  position: absolute;
  top: 16px;
  right: 16px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 7px 10px;
  border-radius: 999px;
  background: #fff;
  color: #e24242;
  font-size: 12px;
  font-weight: 700;
  line-height: 16px;
  letter-spacing: .08em;
  text-transform: uppercase;
  box-shadow: 0 6px 18px rgba(0, 0, 0, .14)
}

.live-badge i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #e24242;
  box-shadow: 0 0 0 4px rgba(226, 66, 66, .12);
  animation: traffic-pulse 1.8s ease-out infinite
}

.camera-card h3,
.route-card h3 {
  margin: 20px 12px 0;
  color: #353536;
  font-size: 17px;
  font-weight: 600;
  line-height: 24px
}

.camera-card.cam-unavailable .camera-media img {
  filter: grayscale(1) brightness(.92)
}

.camera-card.cam-unavailable .live-badge {
  background: #f3f4f4;
  color: #636566
}

.camera-card.cam-unavailable .live-badge i {
  background: #636566;
  box-shadow: none;
  animation: none
}

.route-map {
  height: 300px;
  border: 1px solid #e2e3e3;
  background: #fff
}

.route-map iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0
}

.traffic-page .site-footer {
  display: block;
  min-height: 520px
}

.traffic-page .footer-column {
  opacity: 1;
  transform: none
}

@keyframes traffic-pulse {
  0% {
    box-shadow: 0 0 0 0 rgba(226, 66, 66, .32)
  }
  70% {
    box-shadow: 0 0 0 7px rgba(226, 66, 66, 0)
  }
  100% {
    box-shadow: 0 0 0 0 rgba(226, 66, 66, 0)
  }
}

@media(max-width:760px) {
  .traffic-page .main-nav {
    background: #1260ab
  }
  .traffic-hero {
    height: 330px;
    padding-top: 72px
  }
  .traffic-hero:before {
    inset: 72px 0 0
  }
  .traffic-hero>.container {
    padding-top: 24px
  }
  .traffic-hero h1 {
    font-size: 40px;
    line-height: 48px
  }
  .traffic-hero p {
    font-size: 15px;
    line-height: 24px
  }
  .checkpoint-section {
    padding: 72px 0
  }
  .checkpoint-heading {
    display: block;
    margin-bottom: 38px
  }
  .checkpoint-heading h2 {
    margin-bottom: 20px;
    font-size: 36px;
    line-height: 44px
  }
  .traffic-card-grid {
    grid-template-columns: 1fr;
    gap: 40px
  }
  .route-map {
    height: 270px
  }
  .camera-card h3,
  .route-card h3 {
    margin-top: 16px
  }
  .traffic-page .site-footer {
    min-height: 0
  }
}

@media(prefers-reduced-motion:reduce) {
  .camera-media img,
  .live-badge i {
    transition: none;
    animation: none
  }
}

@media(max-width:760px) {
  .checkpoint-section {
    padding: 64px 0
  }
  .checkpoint-heading {
    margin-bottom: 36px
  }
  .checkpoint-heading h2 {
    margin-bottom: 24px;
    font-size: 36px;
    line-height: 44px;
    letter-spacing: -.03em
  }
}
