.lva-recommended-routes {
    display:grid;
    gap:28px;
}
.lva-recommended-routes.lva-cols-1 { grid-template-columns:1fr; }
.lva-recommended-routes.lva-cols-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.lva-recommended-routes.lva-cols-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.lva-recommended-routes.lva-cols-4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
.lva-route-card {
    overflow:hidden;
    border:1px solid rgba(30,35,40,.12);
    border-radius:16px;
    background:#fff;
    box-shadow:0 10px 30px rgba(30,35,40,.06);
}
.lva-route-card-image {
    min-height:240px;
    display:flex;
    align-items:center;
    justify-content:center;
    background-size:cover;
    background-position:center;
    text-decoration:none;
}
.lva-route-card-placeholder { color:#fff; background:rgba(0,0,0,.45); padding:8px 12px; border-radius:999px; }
.lva-route-card-body { padding:22px; }
.lva-route-card-meta,
.lva-route-stop-eyebrow,
.lva-route-regions {
    font-size:12px;
    line-height:1.4;
    letter-spacing:.08em;
    text-transform:uppercase;
    opacity:.68;
}
.lva-route-card h3 { margin:8px 0 10px; font-size:1.45rem; line-height:1.18; }
.lva-route-card h3 a,
.lva-route-stop-card h3 a { color:inherit; text-decoration:none; }
.lva-route-card-subtitle { margin:0 0 18px; opacity:.82; }
.lva-route-card-link,
.lva-route-stop-link { font-weight:700; text-decoration:none; }
.lva-route-detail { margin-top:34px; }
.lva-route-facts {
    display:flex;
    flex-wrap:wrap;
    gap:14px;
    margin:0 0 18px;
}
.lva-route-facts > div {
    min-width:140px;
    padding:14px 18px;
    border-radius:12px;
    background:rgba(30,35,40,.055);
}
.lva-route-facts strong,
.lva-route-facts span { display:block; }
.lva-route-facts strong { font-size:1.05rem; }
.lva-route-facts span { font-size:.78rem; opacity:.68; margin-top:2px; }
.lva-route-regions { margin-bottom:16px; }
.lva-route-map-wrap { overflow:hidden; border-radius:16px; margin:0 0 22px; }
.lva-route-map { width:100%; min-height:460px; background:#ece8df; }
.lva-route-detail-actions { display:flex; justify-content:flex-start; margin:0 0 28px; }
.lva-route-personalize {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:46px;
    padding:0 20px;
    border-radius:999px;
    background:#1d2327;
    color:#fff !important;
    text-decoration:none !important;
    font-weight:700;
}
.lva-route-stops-public {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:20px;
}
.lva-route-stop-card {
    display:grid;
    grid-template-columns:180px minmax(0,1fr);
    overflow:hidden;
    border:1px solid rgba(30,35,40,.12);
    border-radius:14px;
    background:#fff;
}
.lva-route-stop-image {
    position:relative;
    min-height:170px;
    background-size:cover;
    background-position:center;
    background-color:#ece8df;
}
.lva-route-stop-index {
    position:absolute;
    top:12px;
    left:12px;
    display:flex;
    width:34px;
    height:34px;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:#fff;
    color:#1d2327;
    font-weight:800;
    box-shadow:0 4px 14px rgba(0,0,0,.15);
}
.lva-route-stop-content { padding:18px; }
.lva-route-stop-card h3 { margin:5px 0 8px; font-size:1.2rem; }
.lva-route-stop-card p { margin:0 0 12px; opacity:.72; }
.lva-route-empty-public { padding:18px; border:1px dashed rgba(30,35,40,.25); border-radius:12px; }
@media (max-width: 980px) {
    .lva-recommended-routes.lva-cols-3,
    .lva-recommended-routes.lva-cols-4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .lva-route-stops-public { grid-template-columns:1fr; }
}
@media (max-width: 640px) {
    .lva-recommended-routes,
    .lva-recommended-routes.lva-cols-2,
    .lva-recommended-routes.lva-cols-3,
    .lva-recommended-routes.lva-cols-4 { grid-template-columns:1fr; }
    .lva-route-card-image { min-height:210px; }
    .lva-route-map { min-height:340px; }
    .lva-route-stop-card { grid-template-columns:1fr; }
    .lva-route-stop-image { min-height:190px; }
}
