/*
 * Class names must not start with "line": main.css styles the hamburger icon
 * with div[class^="line"] (fixed 35px width).
 */
.bus_line_description {
    max-width: 700px;
    margin: 16px 0 0;
    font-size: 18px;
    color: #666666;
}

/* One section per line: stop table next to the map, alternating sides. */
.bus_line {
    margin: 40px 0 100px;
}

.bus_line_body {
    display: flex;
    align-items: center;
    gap: 40px;
}

.bus_line--reversed .bus_line_body {
    flex-direction: row-reverse;
}

.bus_line_table {
    flex: 0 0 260px;
    border-collapse: collapse;
    font-size: 18px;
}

/* The route title heads the table, with a pin in front of it. */
.bus_line_table th {
    padding: 0 0 12px;
    font-size: 24px;
    font-weight: normal;
    text-align: left;
}

.bus_line_table th img {
    margin-right: 8px;
    vertical-align: -4px;
}

.bus_line_table td {
    padding: 8px 0;
    border-bottom: 1px solid #e5e5e5;
}

.bus_line_table tr:last-child td {
    border-bottom: none;
}

.bus_line_map {
    flex: 1;
    min-width: 0;
}

/* On narrow screens the table goes above the map. */
@media only screen and (max-width: 991px) {
    .bus_line_body,
    .bus_line--reversed .bus_line_body {
        flex-direction: column;
        align-items: stretch;
        gap: 16px;
    }

    .bus_line_table {
        flex: none;
        width: 100%;
    }
}

/*
 * The padding keeps stops away from the edges: pins extend 40px above their point
 * and 20px to each side; labels may also go above or below the pin. Pins and labels overflow into it.
 */
.bus_line_svg {
    display: block;
    box-sizing: border-box;
    width: 100%;
    height: 60vh;
    padding: 80px 30px 40px;
    overflow: visible;
}

.bus_line_route {
    overflow: visible;
}

.bus_line_path {
    fill: none;
    stroke: #333;
    stroke-width: 16px;
    stroke-linejoin: round;
    stroke-linecap: round;
    vector-effect: non-scaling-stroke;
}

/* Dashed centre line on top of the road. */
.bus_line_path_markings {
    fill: none;
    stroke: #ffffff;
    stroke-width: 2px;
    stroke-dasharray: 10px 10px;
    stroke-linejoin: round;
    vector-effect: non-scaling-stroke;
}

.bus_line_stop_label {
    font-family: 'Nunito', sans-serif;
    font-size: 16px;
    fill: #333333;
    dominant-baseline: middle;
    paint-order: stroke;
    stroke: #ffffff;
    stroke-width: 7px;
    stroke-linejoin: round;
}

@media only screen and (min-width: 992px) {
    .bus_line_stop_label {
        font-size: 20px;
    }
}
