.hero {
  position:
    relative;

  min-height:
    calc(
      100vh
      - var(--header-height)
    );

  padding:
    clamp(
      72px,
      7vw,
      105px
    )
    0
    30px;

  background:
    radial-gradient(
      circle at 78% 15%,
      rgba(113,185,0,.11),
      transparent 28%
    ),
    radial-gradient(
      circle at 12% 12%,
      rgba(22,148,59,.065),
      transparent 24%
    ),
    linear-gradient(
      180deg,
      #ffffff 0%,
      var(--canvas) 100%
    );
}

.hero__grid {
  display:
    grid;

  grid-template-columns:
    minmax(0,.92fr)
    minmax(520px,1.08fr);

  align-items:
    center;

  gap:
    clamp(
      55px,
      6vw,
      90px
    );
}

.hero__content {
  position:
    relative;

  z-index:
    3;
}

.hero__eyebrow {
  display:
    inline-flex;

  align-items:
    center;

  min-height:
    31px;

  margin:
    0 0 24px;

  padding:
    0 12px;

  color:
    var(--trazza-green-strong);

  background:
    var(--green-soft);

  border:
    1px solid
    var(--green-border);

  border-radius:
    999px;

  font-size:
    11px;

  font-weight:
    850;

  letter-spacing:
    .065em;

  text-transform:
    uppercase;
}

.hero h1 {
  max-width:
    660px;

  margin:
    0;

  color:
    var(--trazza-dark);

  font-size:
    clamp(
      48px,
      4.7vw,
      68px
    );

  font-weight:
    850;

  line-height:
    .99;

  letter-spacing:
    -.052em;
}

.hero h1 span {
  display:
    block;

  margin-top:
    5px;

  color:
    var(--trazza-green);
}

.hero__lead {
  max-width:
    620px;

  margin:
    28px 0 0;

  color:
    var(--muted);

  font-size:
    clamp(
      17px,
      1.35vw,
      20px
    );

  line-height:
    1.68;
}

.hero__actions {
  margin-top:
    34px;
}

.hero__capabilities {
  display:
    flex;

  flex-wrap:
    wrap;

  gap:
    14px 20px;

  margin-top:
    34px;

  color:
    var(--muted);

  font-size:
    13px;

  font-weight:
    700;
}

.hero__capabilities span {
  position:
    relative;

  padding-left:
    17px;
}

.hero__capabilities span::before {
  content:
    "";

  position:
    absolute;

  top:
    50%;

  left:
    0;

  width:
    7px;

  height:
    7px;

  background:
    var(--trazza-lime);

  border-radius:
    50%;

  transform:
    translateY(-50%);
}

.hero__visual {
  position:
    relative;

  min-width:
    0;
}

.platform {
  position:
    relative;

  overflow:
    hidden;

  background:
    #ffffff;

  border:
    1px solid
    var(--line);

  border-radius:
    22px;

  box-shadow:
    var(--shadow-lg);

  transform:
    perspective(1200px)
    rotateY(-1.5deg)
    rotateX(.5deg);

  transform-origin:
    center;
}

.platform__topbar {
  height:
    49px;

  display:
    grid;

  grid-template-columns:
    auto 1fr auto;

  align-items:
    center;

  gap:
    16px;

  padding:
    0 18px;

  color:
    var(--muted-light);

  background:
    #fbfcfa;

  border-bottom:
    1px solid
    var(--line);

  font-size:
    10px;

  font-weight:
    750;
}

.platform__dots {
  display:
    flex;

  gap:
    5px;
}

.platform__dots i {
  width:
    7px;

  height:
    7px;

  background:
    #ccd5ce;

  border-radius:
    50%;
}

.platform__name {
  justify-self:
    center;
}

.platform__online {
  color:
    var(--trazza-green);

  font-weight:
    800;
}

.platform__main {
  min-height:
    425px;

  display:
    grid;

  grid-template-columns:
    54px 1fr;
}

.platform__sidebar {
  display:
    flex;

  flex-direction:
    column;

  align-items:
    center;

  gap:
    20px;

  padding:
    16px 0;

  background:
    var(--trazza-dark);
}

.sidebar-mark {
  display:
    grid;

  place-items:
    center;

  width:
    28px;

  height:
    28px;

  margin-bottom:
    10px;

  color:
    #ffffff;

  background:
    var(--trazza-green);

  border-radius:
    8px;

  font-size:
    12px;

  font-weight:
    900;
}

.platform__sidebar > i {
  width:
    18px;

  height:
    18px;

  border:
    2px solid
    rgba(255,255,255,.30);

  border-radius:
    5px;
}

.platform__sidebar > i.active {
  background:
    rgba(113,185,0,.18);

  border-color:
    var(--trazza-lime-light);
}

.dashboard {
  padding:
    24px;

  background:
    #fafcf9;
}

.dashboard__header {
  display:
    flex;

  align-items:
    center;

  justify-content:
    space-between;

  margin-bottom:
    20px;
}

.dashboard__header > div {
  display:
    flex;

  flex-direction:
    column;

  gap:
    4px;
}

.dashboard__header small {
  color:
    var(--muted-light);

  font-size:
    9px;

  font-weight:
    800;

  letter-spacing:
    .075em;

  text-transform:
    uppercase;
}

.dashboard__header strong {
  color:
    var(--trazza-dark);

  font-size:
    21px;
}

.dashboard__header > span {
  padding:
    7px 10px;

  color:
    var(--trazza-green-strong);

  background:
    var(--green-soft);

  border:
    1px solid
    var(--green-border);

  border-radius:
    8px;

  font-size:
    9px;

  font-weight:
    850;

  text-transform:
    uppercase;
}

.metrics {
  display:
    grid;

  grid-template-columns:
    repeat(3,1fr);

  gap:
    12px;
}

.metric {
  min-height:
    108px;

  display:
    flex;

  flex-direction:
    column;

  justify-content:
    center;

  padding:
    15px;

  background:
    #ffffff;

  border:
    1px solid
    var(--line);

  border-radius:
    14px;

  box-shadow:
    var(--shadow-sm);
}

.metric span,
.metric small {
  color:
    var(--muted-light);

  font-size:
    9px;

  font-weight:
    700;
}

.metric strong {
  margin:
    6px 0 3px;

  color:
    var(--trazza-dark);

  font-size:
    28px;

  letter-spacing:
    -.04em;
}

.dashboard__bottom {
  display:
    grid;

  grid-template-columns:
    1.08fr .92fr;

  gap:
    12px;

  margin-top:
    12px;
}

.tracking,
.operation-map {
  min-height:
    180px;

  background:
    #ffffff;

  border:
    1px solid
    var(--line);

  border-radius:
    14px;

  box-shadow:
    var(--shadow-sm);
}

.tracking {
  padding:
    16px;
}

.tracking__header {
  display:
    flex;

  justify-content:
    space-between;

  margin-bottom:
    20px;

  color:
    var(--trazza-dark);

  font-size:
    11px;
}

.tracking__header span {
  color:
    var(--muted-light);

  font-size:
    9px;
}

.progress-row {
  display:
    grid;

  grid-template-columns:
    62px 1fr 28px;

  align-items:
    center;

  gap:
    9px;

  margin:
    15px 0;

  color:
    var(--muted);

  font-size:
    9px;

  font-weight:
    700;
}

.progress {
  overflow:
    hidden;

  height:
    7px;

  background:
    #e7ede4;

  border-radius:
    999px;
}

.progress i {
  display:
    block;

  height:
    100%;

  background:
    linear-gradient(
      90deg,
      var(--trazza-green),
      var(--trazza-lime)
    );

  border-radius:
    inherit;
}

.progress-row b {
  color:
    var(--trazza-dark);

  font-size:
    9px;
}

.operation-map {
  position:
    relative;

  overflow:
    hidden;

  background:
    linear-gradient(
      135deg,
      #eaf2e5,
      #f9fbf8
    );
}

.road {
  position:
    absolute;

  height:
    8px;

  background:
    rgba(255,255,255,.96);

  border:
    1px solid
    #dce5d8;

  border-radius:
    999px;
}

.road-a {
  width:
    150%;

  top:
    40%;

  left:
    -25%;

  transform:
    rotate(-18deg);
}

.road-b {
  width:
    130%;

  top:
    63%;

  left:
    -18%;

  transform:
    rotate(26deg);
}

.road-c {
  width:
    120%;

  top:
    28%;

  left:
    -10%;

  transform:
    rotate(62deg);
}

.pin {
  position:
    absolute;

  width:
    15px;

  height:
    15px;

  background:
    var(--trazza-green);

  border:
    4px solid
    #ffffff;

  border-radius:
    50%;

  box-shadow:
    0 4px 12px
    rgba(22,148,59,.28);
}

.pin-a {
  top:
    27%;

  left:
    31%;
}

.pin-b {
  top:
    58%;

  left:
    63%;

  background:
    var(--trazza-lime);
}

.pin-c {
  top:
    44%;

  left:
    74%;
}

.pin-d {
  top:
    68%;

  left:
    28%;

  background:
    var(--trazza-lime);
}

.status-card {
  position:
    absolute;

  display:
    flex;

  align-items:
    center;

  gap:
    11px;

  padding:
    11px 14px;

  background:
    rgba(255,255,255,.97);

  border:
    1px solid
    var(--line);

  border-radius:
    13px;

  box-shadow:
    var(--shadow-md);

  backdrop-filter:
    blur(10px);
}

.status-card--top {
  top:
    -28px;

  right:
    -12px;
}

.status-card--bottom {
  bottom:
    -25px;

  left:
    -28px;
}

.status-card__icon {
  display:
    grid;

  place-items:
    center;

  width:
    30px;

  height:
    30px;

  flex-shrink:
    0;

  color:
    #ffffff;

  background:
    var(--trazza-green);

  border-radius:
    9px;

  font-size:
    14px;

  font-weight:
    900;
}

.status-card--bottom
.status-card__icon {
  color:
    var(--trazza-dark);

  background:
    var(--trazza-lime);
}

.status-card > div {
  display:
    flex;

  flex-direction:
    column;

  gap:
    2px;
}

.status-card strong {
  color:
    var(--trazza-dark);

  font-size:
    11px;
}

.status-card small {
  color:
    var(--muted-light);

  font-size:
    9px;
}

.hero__footer {
  display:
    flex;

  justify-content:
    center;

  margin-top:
    clamp(
      72px,
      7vw,
      100px
    );

  color:
    var(--muted);

  font-size:
    13px;

  font-weight:
    700;

  text-align:
    center;
}

@media (max-width: 1120px) {

  .hero__grid {
    grid-template-columns:
      1fr;
  }

  .hero__content {
    max-width:
      760px;
  }

  .hero__visual {
    width:
      min(100%,820px);

    margin-inline:
      auto;
  }

  .platform {
    transform:
      none;
  }

}

@media (max-width: 720px) {

  .hero {
    min-height:
      auto;

    padding-top:
      58px;
  }

  .hero h1 {
    font-size:
      clamp(
        43px,
        11.8vw,
        58px
      );
  }

  .hero__lead {
    font-size:
      17px;
  }

  .hero__actions
  .button {
    width:
      100%;
  }

  .platform__main {
    grid-template-columns:
      42px 1fr;
  }

  .dashboard {
    padding:
      16px 12px;
  }

  .metrics {
    gap:
      7px;
  }

  .metric {
    min-height:
      92px;

    padding:
      10px;
  }

  .metric strong {
    font-size:
      22px;
  }

  .dashboard__bottom {
    grid-template-columns:
      1fr;
  }

  .operation-map {
    display:
      none;
  }

  .status-card--top {
    right:
      -3px;
  }

  .status-card--bottom {
    left:
      8px;
  }

}

@media (max-width: 470px) {

  .platform__topbar {
    grid-template-columns:
      auto 1fr;
  }

  .platform__name {
    justify-self:
      end;
  }

  .platform__online {
    display:
      none;
  }

  .status-card {
    display:
      none;
  }

}
