.route-section {
  background: #f3edef;
}
.route-layout {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: 26px;
  margin-top: 48px;
}
.route-planner,
.trip-card {
  padding: 30px;
  background: #fff;
  border: 1px solid var(--line);
}
.route-planner label {
  display: block;
  margin-bottom: 17px;
  font-size: 12px;
  font-weight: 900;
}
.route-planner input,
.route-planner select {
  display: block;
  width: 100%;
  margin-top: 7px;
  padding: 13px;
  border: 1px solid var(--line);
  background: #fff;
  font: inherit;
}
.route-modes {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: 24px 0;
}
.route-modes button,
.traffic-map {
  padding: 11px 14px;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--ink);
  cursor: pointer;
}
.route-modes button.active {
  border-color: var(--wine);
  background: var(--wine);
  color: #fff;
}
.route-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}
.traffic-map {
  font-weight: 800;
}
.route-note {
  color: var(--muted);
  font-size: 12px;
}
.trip-head {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 18px;
}
.trip-head span {
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.trip-head strong {
  color: var(--muted);
}
.trip-map {
  position: relative;
  min-height: 300px;
  overflow: hidden;
  background:
    linear-gradient(
      30deg,
      #eee7e9 12%,
      transparent 12.5%,
      transparent 87%,
      #eee7e9 87.5%
    ),
    linear-gradient(
      150deg,
      #eee7e9 12%,
      #f9f6f7 12.5%,
      #f9f6f7 87%,
      #eee7e9 87.5%
    );
  background-size: 90px 150px;
}
.map-road {
  position: absolute;
  height: 10px;
  background: #d7cdd1;
  border: 2px solid #fff;
  border-radius: 20px;
}
.road-one {
  width: 115%;
  left: -8%;
  top: 48%;
  transform: rotate(-13deg);
}
.road-two {
  width: 90%;
  left: 12%;
  top: 48%;
  transform: rotate(61deg);
}
.map-pin {
  position: absolute;
  z-index: 2;
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 50% 50% 50% 0;
  background: var(--wine);
  color: #fff;
  font-weight: 900;
  transform: rotate(-45deg);
}
.map-pin.start {
  left: 14%;
  top: 23%;
}
.map-pin.finish {
  right: 12%;
  bottom: 17%;
  background: var(--rose);
}
.map-pin::first-letter {
  transform: rotate(45deg);
}
.map-empty {
  position: absolute;
  z-index: 3;
  left: 50%;
  top: 50%;
  width: min(360px, 75%);
  padding: 20px;
  background: #fffffff2;
  box-shadow: 0 15px 35px #39232d2b;
  transform: translate(-50%, -50%);
  text-align: center;
}
.map-empty b,
.map-empty span {
  display: block;
}
.map-empty span {
  margin-top: 6px;
  color: var(--muted);
  font-size: 12px;
}
.trip-timeline {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  margin: 18px 0 0;
  padding: 0;
  background: var(--line);
  list-style: none;
}
.trip-timeline li {
  padding: 12px;
  background: #fff;
  color: var(--muted);
  font-size: 11px;
  text-align: center;
}
.trip-timeline li.current {
  background: var(--blush);
  color: var(--wine);
  font-weight: 900;
}
@media (max-width: 900px) {
  .route-layout {
    grid-template-columns: 1fr;
  }
  .trip-timeline {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 520px) {
  .route-actions > * {
    width: 100%;
  }
  .trip-map {
    min-height: 260px;
  }
}
