
/* path: src/routes/static/routes/css/routes_index.css */

/* Hero */

.RoutesHero{
  padding-top:0;
  padding-bottom:var(--space-5);
}

.RoutesHero__head{max-width:920px;}
.RoutesHero__title{margin-bottom:var(--space-3);}

.RoutesHero__subtitle{
  margin:0;
  color:var(--text-2);
  font-size:1.125rem;
  line-height:1.45;
}


/* Index */

.RoutesIndex{padding-top:0;}

.RoutesIndex__grid{
  display:grid;
  grid-template-columns:1fr;
  gap:var(--space-4);
}

.RoutesIndex__empty{
  padding:var(--space-4);
  color:var(--text-2);
  background:var(--surface);
  border:1px solid var(--divider-2);
  border-radius:var(--r-m);
}


/* Card */

.RouteCard{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:var(--space-3);
  min-width:0;
  padding:var(--space-4);
  background:var(--surface);
  border:1px solid var(--divider-2);
  border-radius:var(--r-m);
  transition:
    transform .18s ease,
    border-color .18s ease,
    background-color .18s ease;
}

.RouteCard:hover{
  transform:translateY(-4px);
  border-color:var(--divider);
  background:rgba(43,49,56,.96);
}


/* Title and link */

.RouteCard__title{
  margin:0;
  color:var(--text);
  font-size:1.35rem;
  line-height:1.12;
  letter-spacing:-.02em;
}

.RouteCard__titleLink,
.RouteCard__titleLink:hover{
  color:inherit;
  text-decoration:none;
}

.RouteCard__titleLink::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  border-radius:var(--r-m);
}

.RouteCard__titleLink:focus-visible{
  outline:none;
}

.RouteCard__titleLink:focus-visible::after{
  outline:2px solid var(--accent-strong);
  outline-offset:3px;
}


/* Route */

.RouteCard__route{
  display:grid;
  gap:var(--space-1);
}

.RouteCard__meta{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--space-3);
  margin:0;
  color:var(--text-2);
  font-size:.95rem;
  line-height:1.3;
}

.RouteCard__meta > div{
  min-width:0;
}

.RouteCard__metaTime{
  grid-column:2;
  text-align:right;
}

.RouteCard__meta dt{
  position:absolute;
  width:1px;
  height:1px;
  margin:-1px;
  padding:0;
  overflow:hidden;
  clip:rect(0 0 0 0);
  white-space:nowrap;
  border:0;
}

.RouteCard__meta dd{
  margin:0;
  white-space:nowrap;
}


/* Route line */

.RouteCard__routeLine{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:var(--space-1);
  min-width:0;
}

.RouteCard__routeDot{
  width:10px;
  height:10px;
  border-radius:50%;
}

.RouteCard__routeDot--start{
  background:var(--text-3);
}

.RouteCard__routeDot--end{
  background:transparent;
  border:1px solid var(--text-3);
}

.RouteCard__routeDash{
  height:1px;
  background:
    repeating-linear-gradient(
      to right,
      var(--divider-3) 0 6px,
      transparent 6px 12px
    );
}


/* Prices */

.RouteCard__prices{
  display:grid;
  gap:var(--space-1);
  margin:0;
}

.RouteCard__prices > div{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:baseline;
  gap:var(--space-3);
}

.RouteCard__prices dt{
  min-width:0;
  color:var(--text-2);
  font-size:.95rem;
  line-height:1.3;
}

.RouteCard__prices dd{
  margin:0;
  color:var(--text);
  font-family:var(--font-head);
  font-size:1rem;
  line-height:1.25;
  font-weight:700;
  white-space:nowrap;
}


/* Tablet */

@media (min-width:720px){
  .RoutesIndex__grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}


/* Desktop */

@media (min-width:1040px){
  .RoutesHero{
    padding-bottom:28px;
  }

  .RoutesIndex__grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}
