/* Rutas de formación v2: presentation only; shared Campus identity stays unchanged. */
.campus.routes-page .campus-page{max-width:1920px;padding:18px 32px 24px;gap:20px}
.routes-page .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.campus.routes-page .campus-hero{height:220px;background:#f3f6f9;border:1px solid #e7ecf1;border-radius:18px}
.campus.routes-page .campus-hero-image{inset:0 0 0 auto;width:44%;height:100%;object-fit:cover;object-position:center;opacity:1}
.campus.routes-page .campus-hero:after{background:linear-gradient(90deg,#f3f6f9 0%,#f3f6f9 55%,#f3f6f900 65%)}
.campus.routes-page .campus-hero-copy{padding:28px 40px;max-width:66%;position:relative}
.campus.routes-page .campus-hero h1{font-size:clamp(32px,3.15vw,52px);letter-spacing:-1.5px;line-height:1.12;margin-bottom:12px}
.campus.routes-page .campus-hero-copy>p:last-child{font-size:clamp(17px,1.5vw,24px)}
.routes-toolbar{display:flex;align-items:center;gap:22px;margin:0 8px 16px;min-height:44px;flex-wrap:wrap}
.routes-heading{display:flex;align-items:center;gap:18px;white-space:nowrap}.routes-heading h2{font-size:24px;letter-spacing:-.6px;margin:0;color:var(--nx-navy)}.routes-heading>span{font-size:14px;color:var(--nx-muted);padding-left:18px;border-left:1px solid #c4ccda}
.route-filters{display:flex;background:#f5f7fa;border-radius:12px;padding:3px;gap:2px}.route-filters button{padding:8px 16px;border:0;background:transparent;color:var(--nx-muted);font-size:14px;cursor:pointer;white-space:nowrap}.route-filters button[aria-pressed=true]{background:#c7effb;color:#174f69;font-weight:650}
.route-search{margin-left:auto;position:relative;display:flex;align-items:center;flex:0 1 310px}.route-search svg{width:20px;height:20px;position:absolute;left:12px;fill:none;stroke:var(--nx-muted);stroke-width:1.8}.route-search input{min-width:0;width:100%;height:42px;padding:0 14px 0 40px;border:1px solid #cbd5e2;border-radius:10px;background:var(--nx-surface);color:var(--nx-text);font-size:14px}.route-search input::placeholder{color:var(--nx-muted);opacity:1}
.rail-controls{display:flex;gap:10px}.rail-controls button{height:42px;width:42px;border:1px solid #cbd5e2;background:var(--nx-surface);color:var(--nx-navy);font-size:30px;line-height:1;cursor:pointer}
.campus .courses{display:flex;gap:18px;align-items:stretch;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:0 1px 14px;scrollbar-color:#97a4b9 #d9e0ea;scrollbar-width:thin;overscroll-behavior-x:contain}
.courses::-webkit-scrollbar{height:7px}.courses::-webkit-scrollbar-track{background:#d9e0ea;border-radius:6px}.courses::-webkit-scrollbar-thumb{background:#97a4b9;border-radius:6px}
.campus .courses .course-card{flex:0 0 calc((100% - 112px)/3);min-width:0;scroll-snap-align:start;border:1px solid #e0e6ed;border-radius:14px;display:flex;flex-direction:column;box-shadow:0 3px 10px #191d4008}
.campus .courses .course-card[hidden]{display:none}.campus .courses[data-count="2"] .course-card{flex-basis:calc((100% - 18px)/2)}
.campus .courses[data-count="1"] .course-card{flex-basis:100%;display:grid;grid-template-columns:44% 1fr}
.courses[data-count="1"] .course-art{height:100%;max-height:340px}.courses[data-count="1"] .course-card-body{padding:28px 36px}.courses[data-count="1"] .course-card h3{min-height:0;margin-bottom:14px}
.routes-page .course-art{height:175px;object-fit:cover;object-position:center}.routes-page .course-card-body{padding:18px 22px 20px;display:flex;flex-direction:column;flex:1;gap:10px}.routes-page .course-card h3{font-size:22px;font-weight:700;letter-spacing:-.45px;line-height:1.3;margin:0;min-height:2.6em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.routes-page .card-head{gap:8px;min-height:28px}.routes-page .badge{padding:3px 10px;font-size:13px;line-height:1.4}.routes-page .theme-2 .badge.warning{background:#eae5fb;color:#5e4698}.routes-page .route-details{min-height:32px;padding:2px 0;border:0;background:transparent;font-size:12px;color:var(--nx-link);cursor:pointer;white-space:nowrap}.route-details:hover{text-decoration:underline}
.route-progress>div{display:flex;justify-content:space-between;gap:12px;color:var(--nx-muted);font-size:15px;margin-bottom:5px}.route-progress progress{display:block;width:100%;height:8px;border:0;border-radius:8px;overflow:hidden;background:#d8e0ea;accent-color:#13a4ce}.route-progress progress::-webkit-progress-bar{background:#d8e0ea;border-radius:8px}.route-progress progress::-webkit-progress-value{background:#13a4ce;border-radius:8px}.route-progress progress::-moz-progress-bar{background:#13a4ce;border-radius:8px}
.routes-page .route-expiry{display:flex;align-items:center;gap:9px;font-size:14px;margin:0;color:var(--nx-muted)}.route-expiry svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;flex-shrink:0}
.campus .route-cta{width:100%;min-height:43px;margin-top:auto;padding:9px 12px;font-size:15px;cursor:pointer}.campus .route-outline{color:var(--nx-navy);border:1px solid var(--nx-navy);background:transparent;font-weight:650}.campus .route-outline:hover{background:#e9edf4}
.rail-meta{display:flex;justify-content:space-between;gap:20px;margin:6px 2px 0;color:var(--nx-muted);font-size:12px}.rail-meta #rail-position{white-space:nowrap;font-size:13px}.route-empty{padding:28px;border:1px dashed #b8c4d4;border-radius:12px;text-align:center;margin:0;background:#f6f8fa}.route-empty[hidden]{display:none}
.journey-summary{display:grid;grid-template-columns:auto 1fr 1.2fr 1.6fr;align-items:center;padding:18px 28px;background:var(--nx-surface);border:1px solid #e2e8ef;border-radius:16px;gap:24px;min-height:90px}.journey-summary h2{font-size:22px;letter-spacing:-.5px;white-space:nowrap;color:var(--nx-navy);margin:0}.journey-stat{display:flex;gap:16px;align-items:center;border-left:1px solid #d9e1ec;padding-left:24px;min-width:0}.journey-stat>div{min-width:0}.journey-stat strong{display:block;color:var(--nx-navy);font-size:28px;line-height:1.1}.journey-stat div>span{display:block;font-size:14px;color:var(--nx-muted)}.journey-icon{display:grid;place-items:center;width:48px;height:48px;flex-shrink:0;border-radius:50%;font-size:26px;font-weight:500}.cyan{background:#cdf1fc;color:#126680}.gold{background:#ffedc1;color:#8a5a00}.coral{background:#fde0e5;color:#a2314c}.journey-next a{display:block;font-weight:650;font-size:15px;color:var(--nx-navy);overflow-wrap:anywhere}
.campus .route-dialog{width:min(720px,calc(100vw - 32px));max-height:85dvh;border:1px solid var(--nx-line);border-radius:16px;padding:0;overflow:auto;overscroll-behavior:contain}.route-dialog header{position:sticky;top:0;background:var(--nx-surface);padding:20px 24px;border-bottom:1px solid var(--nx-line);display:flex;gap:16px;align-items:start;z-index:1}.route-dialog header h2{margin:0;font-size:23px;line-height:1.3}.route-dialog header p{margin:0 0 8px}.route-dialog header button{margin-left:auto;flex-shrink:0;border:1px solid var(--nx-line);background:transparent;color:var(--nx-text);width:40px;font-size:26px;cursor:pointer}.dialog-body{padding:22px 24px}.dialog-body .stats{margin-top:0}.dialog-body .notice{margin-bottom:0}.route-dialog details:last-child{margin-bottom:8px}
@media(min-width:1101px) and (max-height:850px){.campus.routes-page .campus-page{padding:14px 26px 18px;gap:16px}.campus.routes-page .campus-hero{height:185px}.campus.routes-page .campus-hero h1{font-size:40px}.routes-page .course-art{height:145px}.routes-page .course-card-body{padding:14px 20px;gap:8px}.routes-page .course-card h3{font-size:20px}.journey-summary{padding:14px 24px;min-height:78px}}
@media(max-width:1250px){.routes-toolbar{gap:14px}.routes-heading{gap:12px}.routes-heading>span{padding-left:12px}.route-search{flex-basis:230px}.route-filters button{padding:8px 12px}.journey-summary{gap:16px;padding:18px}.journey-stat{padding-left:16px;gap:10px}.journey-icon{width:40px;height:40px}.journey-summary h2{font-size:20px}}
@media(max-width:1100px){.route-search{flex:1 1 220px}.campus .courses .course-card{flex-basis:calc((100% - 74px)/2)}.campus.routes-page .campus-hero h1{font-size:34px}.campus.routes-page .campus-hero-copy{padding:24px;max-width:65%}.journey-summary{grid-template-columns:1fr 1fr}.journey-summary h2{grid-column:1/-1}.journey-stat{border:0;padding:0}.journey-next{grid-column:1/-1}.routes-toolbar{margin-inline:0}.routes-heading{margin-right:auto}}
@media(max-width:700px){.campus.routes-page .campus-page{padding:14px 16px 20px;gap:18px}.campus.routes-page .campus-hero{height:230px}.campus.routes-page .campus-hero-copy{max-width:100%;padding:22px}.campus.routes-page .campus-hero h1{font-size:31px;max-width:280px}.campus.routes-page .campus-hero-copy>p:last-child{font-size:16px;max-width:255px}.campus.routes-page .campus-hero-image{width:100%;opacity:.2;object-position:60% center}.campus.routes-page .campus-hero:after{background:linear-gradient(90deg,#f3f6f9 0%,#f3f6f999 55%,transparent)}.routes-heading{width:100%;justify-content:space-between}.routes-heading h2{font-size:22px}.route-filters{width:100%}.route-filters button{flex:1;padding:8px 6px}.route-search{flex-basis:160px}.rail-controls{gap:6px}.rail-controls button{width:36px}.campus .courses .course-card,.campus .courses[data-count="2"] .course-card{flex-basis:calc(100% - 28px)}.campus .courses[data-count="1"] .course-card{display:flex;flex-basis:100%}.courses[data-count="1"] .course-art,.routes-page .course-art{height:150px}.courses[data-count="1"] .course-card-body{padding:18px 20px}.routes-page .course-card-body{padding:18px}.routes-page .course-card h3{font-size:21px}.rail-meta{flex-direction:column-reverse;gap:6px}.rail-meta #rail-position{align-self:flex-end}.journey-summary{gap:18px 12px}.journey-stat{align-items:start}.journey-icon{width:34px;height:34px;font-size:22px}.journey-stat strong{font-size:25px}.journey-stat div>span{font-size:12px}.journey-next{padding-top:12px;border-top:1px solid var(--nx-line)}.route-dialog header,.dialog-body{padding:18px}.route-dialog header h2{font-size:20px}}
@media(prefers-reduced-motion:reduce){.campus .courses{scroll-behavior:auto}}
/* Keep filtered cards hidden even when the rail switches to a single-card layout. */
.campus .courses .course-card[hidden]{display:none!important}
.campus.routes-page .campus-hero-image{object-fit:contain;object-position:75% center}
.routes-page .course-card h3{min-height:0}
.routes-page .course-card-body{gap:8px}
.campus .courses{scrollbar-width:auto}
.campus.routes-page .campus-page{grid-template-columns:minmax(0,1fr);padding-top:14px;gap:16px}.routes-section{min-width:0}
.routes-toolbar{margin-bottom:12px}.campus .courses{padding-bottom:10px}.journey-summary{padding-block:14px;min-height:84px}
@media(min-width:701px){.courses[data-count="1"] .course-art{height:285px;max-height:none}.courses[data-count="1"] .course-card-body{padding:24px 32px}}
@media(min-width:1101px){.campus.routes-page .campus-hero-image{top:-15px;height:calc(100% + 30px);object-position:15% center}.campus.routes-page .campus-hero h1{font-size:clamp(38px,3.6vw,60px)}}
@media(min-width:1101px) and (max-height:850px){.campus.routes-page .campus-hero h1{font-size:42px}}
@media(max-width:700px){.campus.routes-page .campus-page:not([data-authenticated]) .campus-hero{height:280px}}
