.bs-experience{background:linear-gradient(rgba(79,62,37,.92),rgba(79,62,37,.85)),url('/img/patterns/xv.webp');padding:30px 24px 60px;color:rgba(255,255,255,.86)}
.bs-experience-wrap{max-width:1200px;margin:auto}
.bs-experience-back{display:inline-block;color:#eee2cf;margin:0 0 22px;font-size:.9rem;text-decoration:none}
.bs-experience-back:hover{text-decoration:underline}
.bs-route-card{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,.95fr);height:min(78vh,760px);min-height:540px;background:#101010;border-radius:18px;box-shadow:0 22px 70px rgba(0,0,0,.4);overflow:hidden}
.bs-route-gallery{padding:14px;background:#0b0b0b;display:flex;flex-direction:column;min-width:0;min-height:0}
.bs-route-gallery figure{margin:0;display:flex;flex-direction:column;min-height:0;flex:1}
.bs-route-viewer{flex:1;min-height:0;display:grid;place-items:center;overflow:hidden;border-radius:12px;background:#080808}
.bs-route-viewer img{display:block;width:100%;height:100%;min-height:0;object-fit:contain}
.bs-route-gallery figcaption{color:rgba(255,255,255,.65);font-size:.8rem;line-height:1.5;padding:12px 2px 2px}
.bs-route-thumbs{display:flex;gap:10px;padding:12px 2px 5px;overflow-x:auto;flex-shrink:0}
.bs-route-thumbs a{display:block;flex:0 0 65px;height:60px;border-radius:10px;border:1px solid rgba(255,255,255,.16);overflow:hidden;opacity:.65}
.bs-route-thumbs a[aria-current=true]{border:2px solid #d1b07a;opacity:1}
.bs-route-thumbs a:hover{opacity:1}
.bs-route-thumbs img{width:100%;height:100%;object-fit:cover}
.bs-route-side{display:flex;flex-direction:column;min-height:0;background:#141414;border-left:1px solid rgba(255,255,255,.1);padding:18px}
.bs-route-side header{background:#090909;padding:22px 22px 24px}
.bs-route-badge,.bs-route-meta span{display:inline-block;padding:7px 12px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.06);border-radius:999px;font-size:.8rem;color:rgba(255,255,255,.75)}
.bs-route-side h1{font-size:1.5rem;line-height:1.3;font-weight:650;color:rgba(255,255,255,.94);margin:14px 0 12px}
.bs-route-meta{display:flex;gap:8px;flex-wrap:wrap}
.bs-route-copy{padding:24px 22px 12px;overflow-y:auto;min-height:0;color:rgba(255,255,255,.78)}
.bs-route-copy p{font-size:1rem;line-height:1.65;margin:0 0 22px}
.bs-route-copy h2{font-size:1.05rem;line-height:1.4;font-weight:600;color:#eee2cf;margin:25px 0 10px}
.bs-route-contact{display:inline-block;color:#e5c895;border:1px solid rgba(209,176,122,.45);padding:11px 17px;border-radius:999px;font-size:.9rem;margin:4px 0 12px}
.bs-experience a:focus-visible{outline:3px solid #d1b07a;outline-offset:3px}
@media(max-width:900px){.bs-route-card{grid-template-columns:1fr;height:auto;min-height:0}.bs-route-viewer{height:55vh;min-height:260px;flex:auto}.bs-route-side{border-left:0;border-top:1px solid rgba(255,255,255,.1)}.bs-route-copy{overflow:visible}.bs-experience{padding:22px 16px 40px}.bs-route-side header{padding:18px}.bs-route-copy{padding:22px 18px 8px}}
.bs-route-dialog{padding:0;border:1px solid rgba(255,255,255,.14);border-radius:18px;width:min(1200px,calc(100% - 36px));max-width:none;max-height:88dvh;background:#101010;color:rgba(255,255,255,.86);overflow:hidden;box-shadow:0 22px 70px rgba(0,0,0,.55)}
.bs-route-dialog::backdrop{background:rgba(0,0,0,.68);backdrop-filter:blur(6px)}
.bs-route-dialog .bs-route-card{height:min(82dvh,760px);min-height:0;border-radius:0}
.bs-route-close{position:absolute;z-index:2;right:12px;top:12px;width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.14);background:#242424;color:#fff;cursor:pointer}
.bs-route-close:hover{background:#393939}
.bs-route-side .bs-route-title{font-size:1.5rem;line-height:1.3;font-weight:650;color:rgba(255,255,255,.94);margin:14px 0 12px}
.bs-route-dialog .bs-route-side header{padding-right:40px}
.bs-route-dialog a:focus-visible,.bs-route-close:focus-visible{outline:3px solid #d1b07a;outline-offset:3px}
@media(max-width:900px){.bs-route-dialog{overflow-y:auto}.bs-route-dialog .bs-route-card{height:auto}.bs-route-dialog .bs-route-viewer{height:48dvh}.bs-route-dialog .bs-route-close{position:sticky;display:block;margin:10px 10px 0 auto;top:10px}.bs-route-dialog .bs-route-side header{padding-right:18px}}

.bs-route-video{width:100%;margin:20px 0}.bs-route-empty{padding:30px;color:#ddd}

/* Tarjetas de rutas: composición equilibrada y alturas uniformes. */
.rutas .rutas-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;align-items:stretch}
.rutas .ruta-card{display:flex;flex-direction:column;width:100%;max-width:none;height:100%;margin:0}
.rutas .ruta-media{flex:none;aspect-ratio:4/3}
.rutas .ruta-body{flex:1;padding:1.1rem 1.15rem 1.3rem}
.rutas .ruta-title{font-weight:600;line-height:1.35;margin-bottom:.5rem}
@media(max-width:640px){.rutas .rutas-grid{grid-template-columns:1fr;grid-auto-rows:auto}}
