*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:20px}body{margin:0;background:var(--surface);color:var(--text);font-family:Arial,Helvetica,sans-serif}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.svg-defs{position:absolute;width:0;height:0;overflow:hidden}.container{width:calc(100% - 110px);max-width:1200px;margin:auto}.hero{color:white;background:var(--hero-bg);position:relative;isolation:isolate;padding-bottom:30px}.hero:before{content:"";position:absolute;inset:0 0 100px;z-index:-1;background:linear-gradient(90deg,var(--hero-bg) 0%,var(--hero-bg) 36%,rgba(3,21,38,.1) 61%),linear-gradient(0deg,var(--hero-bg),transparent 25%),url('../images/hero.png') right top/auto 100% no-repeat}.header{display:flex;align-items:center;gap:25px;height:78px}.brand{display:flex;align-items:center;gap:10px;white-space:nowrap}.brand>svg{width:57px;height:47px;color:#fff;stroke-width:1.5}.brand strong{font-size:25px;letter-spacing:-1px}.brand strong span,footer strong span{color:#00a4ff}.brand small{display:block;font-size:12px;letter-spacing:.25px;margin-top:1px}.header nav{display:flex;gap:29px;margin:auto;font-size:12px;font-weight:700}.header nav a{padding:15px 0;position:relative}.header nav .active:after{content:"";position:absolute;bottom:3px;left:0;right:0;height:2px;background:#fff}.country{font-size:12px;white-space:nowrap}.login{display:flex;align-items:center;gap:8px;background:transparent;color:white;border:1px solid white;border-radius:14px;padding:9px 12px;font-size:12px;white-space:nowrap}.login svg{width:16px;height:16px}.menu-toggle{display:none}.hero-content{padding:12px 0 30px}.hero h1{font-size:46px;line-height:1.03;letter-spacing:-1.2px;margin:4px 0 13px;font-weight:800}.hero h1 span{color:var(--accent)}.hero-content>p{font-size:17px;line-height:1.4;margin:0}.tabs{display:flex}.tab{display:flex;align-items:center;gap:10px;background:#ffffff18;color:white;border:0;padding:15px 36px;border-radius:12px 12px 0 0;font-size:13px;font-weight:700;min-height:48px}.tab.selected{background:var(--blue)}.tab svg{width:20px;height:20px}.search-form,.tickets-form{display:grid;grid-template-columns:1.2fr 27px 1.25fr 1.2fr .9fr 1.1fr;gap:14px;padding:18px 22px 22px;border-radius:0 10px 10px 10px;background:white;color:var(--text);align-items:end;box-shadow:0 12px 30px #0002}.search-form label,.tickets-form label{font-size:11px;display:flex;flex-direction:column;gap:5px;min-width:0}.input-wrap{display:flex;align-items:center;border:1px solid var(--border);border-radius:6px;height:36px;padding:0 9px;gap:7px}.input-wrap svg{width:17px;height:17px;color:var(--blue)}.input-wrap input,.input-wrap select{min-width:0;width:100%;height:100%;border:0;background:transparent;color:var(--muted);font-size:11px;outline:none}.input-wrap:focus-within{outline:2px solid var(--blue);outline-offset:2px}.swap{height:28px;width:28px;border:1px solid #a5ceff;color:var(--blue);border-radius:50%;background:white;margin-bottom:4px;font-size:19px}.primary{display:flex;align-items:center;justify-content:center;gap:9px;background:var(--primary);border:0;border-radius:8px;color:white;font-size:12px;font-weight:bold;min-height:44px;padding:12px 16px}.primary svg{width:18px;height:18px}.tickets-form{grid-template-columns:1fr 1fr auto}.tickets-form input{border:1px solid var(--border);padding:10px;border-radius:6px}.status{background:#fff;color:var(--text);padding:14px;border-radius:8px;font-size:14px;line-height:1.5;margin:8px 0 0}.benefits{display:flex;justify-content:space-between;gap:15px;padding-top:33px}.benefits>div{display:flex;align-items:center;gap:13px}.benefits svg,.circle{width:40px;height:40px;color:var(--blue);stroke-width:2}.benefits strong{font-size:12px;display:block}.benefits small{font-size:10px;display:block;margin-top:6px}.circle{display:flex;align-items:center;justify-content:center;border:2px solid var(--blue);border-radius:50%;color:#fff;font-size:36px}.circle.hours{font-size:18px;font-weight:700}.section{padding-top:30px;padding-bottom:28px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}.eyebrow{font-size:12px;font-weight:500;text-transform:uppercase;color:var(--blue);letter-spacing:.15px;margin:0 0 9px;display:flex;gap:12px;align-items:center}.eyebrow:before{content:"";width:18px;height:4px;border-radius:3px;background:currentColor}h2{font-size:29px;letter-spacing:-.9px;margin:0;font-weight:800}.outline{background:transparent;border:1px solid var(--blue-border);border-radius:22px;padding:11px 16px;font-size:11px;color:var(--link);font-weight:bold;white-space:nowrap}.company-carousel{position:relative}.companies{display:flex;gap:14px;overflow-x:auto;scrollbar-width:none;scroll-behavior:smooth}.companies::-webkit-scrollbar{display:none}.company{background:#fff;border-radius:10px;min-width:calc((100% - 70px)/6);flex:1;display:flex;align-items:center;flex-direction:column;justify-content:center;padding:12px 6px 14px;min-height:100px;color:var(--text)}.company img{height:40px;width:70px;object-fit:contain;margin-bottom:3px}.company small{font-size:12px;color:var(--text)}.company strong{font-size:14px;text-align:center;letter-spacing:-.4px}.company.red strong{color:#dd0016}.carousel-arrow{position:absolute;top:35px;border:0;border-radius:50%;height:30px;width:30px;color:var(--blue);background:white;box-shadow:0 2px 9px #00234f12;font-size:27px;line-height:20px}.previous{left:-35px}.next{right:-35px}.routes-section{border-top:1px solid #e9edf2}.routes-section .section{padding-top:22px;padding-bottom:23px}.routes{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.route{padding:0;text-align:left;border:0;border-radius:9px;overflow:hidden;background:#fff;color:var(--text);transition:transform .2s,box-shadow .2s}.route:hover{transform:translateY(-4px);box-shadow:0 8px 24px #042b5317}.route>img{width:100%;height:87px;object-fit:cover;display:block}.route-body{display:block;padding:14px 13px}.route-body>strong{font-size:13px;letter-spacing:-.4px;white-space:nowrap}.route-body>strong b{color:var(--blue)}.route-body>strong:after{content:"";display:block;margin-top:9px;height:1px;width:26px;background:var(--blue)}.route-details{display:flex;align-items:flex-end;justify-content:space-between;margin-top:8px}.route-details>span:first-child{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--muted);padding-bottom:4px}.route-details svg{width:14px;height:14px;color:var(--text)}.price{display:flex;flex-direction:column;text-align:right}.price small{font-size:10px}.price b{font-size:17px;color:var(--link);margin-top:1px}.travel-banner{color:white;position:relative;background:var(--hero-bg);isolation:isolate}.travel-banner:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,var(--hero-bg) 0%,#031526dc 25%,transparent 45%,transparent 70%,var(--hero-bg) 82%),url('../images/travel.png') center/auto 100% no-repeat}.travel-content{display:flex;justify-content:space-between;align-items:center;min-height:249px;padding-top:28px;padding-bottom:24px}.travel-banner .eyebrow{color:var(--accent)}.travel-banner h2{font-size:36px;line-height:1.06}.travel-content>div>p:not(.eyebrow){font-size:16px;line-height:1.4;margin:10px 0}.yellow{display:inline-block;background:var(--yellow);color:#081529;border-radius:8px;padding:13px 30px;font-size:13px;font-weight:700}.travel-perks{display:flex;flex-direction:column;gap:18px}.travel-perks>div{display:flex;align-items:center;gap:15px}.travel-perks>div>span{display:flex;align-items:center;justify-content:center;font-size:26px;background:linear-gradient(120deg,#00b5ff,#0050c7);width:39px;height:39px;border:1px solid #009dff;border-radius:50%}.travel-perks p{margin:0}.travel-perks strong{display:block;font-size:12px}.travel-perks small{display:block;font-size:10px;margin-top:5px}.how-it-works{padding-top:27px;padding-bottom:48px}.how-it-works h2{font-size:27px}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;margin-top:27px}.steps>div{display:flex;gap:13px;position:relative;align-items:flex-start}.steps>div:not(:last-child):after{content:"›";position:absolute;right:-20px;top:12px;font-size:28px;color:#80baff}.step-icon{width:56px;height:56px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--blue-soft);color:var(--primary);flex-shrink:0}.step-icon svg{height:30px;width:30px;stroke-width:3}.steps p{margin:7px 0 0}.steps strong{font-size:13px;display:block}.steps small{color:var(--muted);font-size:11px;line-height:1.7;display:block;margin-top:6px}footer{padding:20px 0 25px;border-top:1px solid var(--border);display:flex;gap:20px;align-items:center}footer p{font-size:12px;color:var(--muted)}footer button{margin-left:auto}dialog{border:0;border-radius:15px;max-width:430px;width:calc(100% - 36px);padding:32px;box-shadow:0 20px 80px #0004}dialog::backdrop{background:#001327a6}dialog h2{font-size:24px}dialog p{line-height:1.6;color:var(--muted);font-size:14px}.dialog-close{position:absolute;top:8px;right:12px;background:none;border:0;font-size:28px;color:var(--muted)}[hidden]{display:none!important}:focus-visible{outline:3px solid var(--focus);outline-offset:4px}button:hover,.yellow:hover{filter:brightness(.96)}
@media(min-width:1200px){.hero-content{padding-top:25px;padding-bottom:35px}.hero h1{font-size:54px}.header{height:88px}.search-form{padding:22px}.hero:before{background-size:auto,auto,auto 100%}.route>img{height:110px}.travel-content{min-height:280px}}
@media(max-width:1000px){.container{width:calc(100% - 64px)}.header{gap:16px}.header nav{gap:18px}.brand strong{font-size:22px}.country{display:none}.search-form{gap:10px;padding:18px 16px}.tab{padding:15px 32px}.benefits>div{gap:8px}.benefits strong{font-size:11px}.benefits small{font-size:9px}.benefits svg,.circle{width:34px;height:34px}.steps{gap:20px}.steps>div{gap:10px}.step-icon{width:45px;height:45px}.steps strong{font-size:12px}.route-body{padding:12px 10px}.route-body>strong{font-size:12px}}
@media(max-width:760px){.container{width:calc(100% - 36px)}.header{height:74px;gap:12px;flex-wrap:wrap;position:relative}.brand{margin-right:auto}.brand>svg{width:42px;height:38px}.brand strong{font-size:22px}.brand small{font-size:10px}.menu-toggle{display:block;background:none;border:1px solid #ffffff60;border-radius:8px;color:#fff;font-size:22px;padding:3px 9px}.login{font-size:0;padding:9px;border-radius:8px}.login svg{width:19px;height:19px}.header nav{display:none;position:absolute;top:66px;left:0;right:0;background:#08223b;border-radius:10px;padding:12px;z-index:5;box-shadow:0 10px 20px #0003}.header nav.open{display:flex;flex-wrap:wrap;gap:16px;justify-content:center}.hero:before{inset:60px 0 140px;background:linear-gradient(90deg,#031526f5,#0315269c 60%,#03152645),url('../images/hero.png') right top/auto 330px no-repeat}.hero h1{font-size:40px;line-height:1.08}.hero-content{padding-top:18px;padding-bottom:28px}.hero-content>p{font-size:15px}.search-form{grid-template-columns:1fr 30px 1fr;gap:14px;padding:18px}.search-form label:nth-of-type(3){grid-column:1/3}.search-form label:nth-of-type(4){grid-column:3}.search-form .primary{grid-column:1/-1}.search-form label{font-size:12px}.input-wrap{height:42px}.input-wrap input,.input-wrap select{font-size:12px}.swap{margin-bottom:7px}.tickets-form{grid-template-columns:1fr}.benefits{flex-wrap:wrap;justify-content:center;gap:22px;padding-top:25px}.benefits>div{width:calc(33.333% - 15px);flex-direction:column;text-align:center}.benefits strong{font-size:11px}.benefits small{font-size:10px}.section-heading{align-items:flex-start;gap:12px;flex-direction:column}.section-heading .outline{align-self:flex-end;margin-top:-2px}h2{font-size:27px}.companies{gap:12px}.company{min-width:145px}.previous{left:-12px}.next{right:-12px}.routes{grid-template-columns:repeat(2,1fr);gap:14px}.route>img{height:105px}.route-body>strong{font-size:13px}.routes .route:last-child{grid-column:1/-1;max-width:calc(50% - 7px)}.travel-content{min-height:370px;align-items:flex-start;flex-direction:column;gap:28px}.travel-banner:before{background:linear-gradient(90deg,#031526e8,#03152670),url('../images/travel.png') right center/auto 100% no-repeat}.travel-banner h2{font-size:32px}.travel-perks{flex-direction:row;gap:14px;flex-wrap:wrap}.travel-perks>div{gap:8px}.travel-perks strong{font-size:11px}.travel-perks small{font-size:9px}.travel-perks>div>span{width:30px;height:30px;font-size:20px}.steps{grid-template-columns:repeat(2,1fr);gap:25px 18px}.steps>div:after{display:none}.how-it-works h2{font-size:25px}.step-icon{width:44px;height:44px}.steps small{font-size:10px}footer{flex-wrap:wrap;gap:8px}footer p{margin:0}footer button{margin-left:0}.tabs .tab{flex:1;justify-content:center;padding:14px 20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.companies{scroll-behavior:auto}.route{transition:none}}

/* Logotipo original: conserva su fondo, colores y proporciones. */
.brand { flex-shrink: 0; }
.brand-logo { display: block; width: 270px; max-width: 100%; height: auto; }
.footer-brand { display: block; flex-shrink: 0; overflow: hidden; border-radius: 8px; }
.footer-brand .brand-logo { width: 240px; }
@media (max-width: 1000px) {
  .header .brand-logo { width: 240px; }
}
@media (max-width: 760px) {
  .header .brand-logo { width: clamp(140px, calc(100vw - 140px), 240px); }
}

.company-carousel .companies { scroll-behavior: auto; }
.route-carousel { position: relative; }
.route-carousel .routes { display: flex; gap: 12px; overflow-x: auto; scrollbar-width: none; scroll-behavior: auto; padding-top: 5px; padding-bottom: 12px; }
.route-carousel .routes::-webkit-scrollbar { display: none; }
.route-carousel .route { flex: 0 0 calc((100% - 48px) / 5); min-width: 220px; }
.route-carousel .carousel-arrow { top: 50%; transform: translateY(-50%); z-index: 1; }
@media(max-width:760px) {
  .route-carousel .route, .route-carousel .route:last-child { flex-basis: 80%; min-width: 240px; max-width: none; }
}
.company-carousel .company { flex: 0 0 calc((100% - 70px) / 6); min-width: 145px; min-height: 132px; padding: 8px; gap: 0; }
.company-carousel .company img { width: 100%; max-width: 100%; height: 114px; object-fit: contain; margin-bottom: 0; }
.company-carousel .carousel-arrow { top: 50%; transform: translateY(-50%); }
.company-placeholder { display: grid; place-items: center; width: 70px; height: 40px; margin-bottom: 3px; border-radius: 8px; background: var(--blue-soft); color: var(--primary); font-size: 26px; font-weight: bold; }
.company-carousel .company-placeholder { width: 100%; max-width: 100%; height: 114px; margin-bottom: 0; }
.companies-empty { color: var(--muted); }
.route-logo { display:flex; align-items:center; justify-content:center; width:100%; margin-bottom:12px; padding:8px; border-radius:8px; background:white; }
.route-logo img { display:block; width:160px; max-width:100%; height:72px; object-fit:contain; }
footer { flex-wrap: wrap; }
.footer-credits {
  flex-basis: 100%;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  padding-top: 16px;
  margin-top: 4px;
  border-top: 1px solid var(--border);
}
.footer-credits p { margin: 0; }

.signup-link { display:inline-flex; align-items:center; justify-content:center; border:1px solid #ffffff80; border-radius:8px; padding:10px 14px; color:white; font-size:13px; font-weight:700; white-space:nowrap; }
.customer-session { display:flex; align-items:center; gap:12px; min-width:0; color:white; }
.customer-account { display:flex; flex-direction:column; gap:3px; min-width:0; font-size:12px; }
.customer-account strong { font-size:14px; overflow-wrap:anywhere; }
.customer-session form { margin:0; flex-shrink:0; }
.customer-logout { padding:9px 12px; border:1px solid #ffffff80; border-radius:8px; background:transparent; color:inherit; font-size:12px; white-space:nowrap; }
.customer-logout:hover { background:#ffffff18; }
@media(max-width:1200px) { .header:has(.customer-session) { flex-wrap:wrap; height:auto; min-height:88px; padding-top:12px; padding-bottom:12px; row-gap:12px; }.header .customer-session { margin-left:auto; } }
@media(max-width:760px) { .header .customer-session { flex-basis:100%; justify-content:space-between; }.customer-account strong { font-size:13px; } }
@media(max-width:760px) { .signup-link { padding:8px; font-size:11px; } }@media(max-width:760px) { .header:has(.signup-link) .brand-logo { width:clamp(100px, calc(100vw - 250px), 180px); } }
.public-results { scroll-margin-top:20px; }
.public-departure { display:grid; grid-template-columns:minmax(130px,1fr) minmax(220px,2fr) minmax(130px,1fr) auto; align-items:center; gap:24px; padding:24px; margin-top:18px; border:1px solid var(--border); border-radius:14px; background:white; box-shadow:0 6px 20px #12335408; }
.public-operator img { display:block; object-fit:contain; margin-bottom:10px; max-width:100%; }.public-operator strong { font-size:14px; }
.public-trip h3 { font-size:18px; margin:0 0 10px; }.public-departure p { font-size:12px; line-height:1.6; color:var(--muted); }.public-price>strong { font-size:22px; color:var(--link); }.public-price small { display:block; margin-top:5px; font-size:12px; }.public-departure .primary { display:inline-block; text-align:center; font-size:13px; white-space:nowrap; }.bus-full { color:#a32938; }
.public-results .error-summary { padding:18px; background:#fff0f2; color:#a32938; border-radius:10px; }
.search-form .errorlist { font-size:11px; color:#ad2539; padding-left:12px; }
@media(max-width:900px) { .public-departure { grid-template-columns:1fr 2fr; }.public-departure .primary { width:100%; } }
@media(max-width:550px) { .public-departure { grid-template-columns:1fr; gap:12px; }.public-operator { display:flex; align-items:center; gap:12px; } }
.no-routes-dialog { border-top:5px solid var(--primary); background:white; color:var(--text); padding-top:48px; border-radius:16px; box-shadow:0 20px 70px #06162955; }
.no-routes-dialog::backdrop { background:#031526b3; }
.no-routes-dialog h2 { font-size:24px; color:var(--navy); }
.no-routes-dialog h2::before { content:'↗'; display:flex; align-items:center; justify-content:center; width:48px; height:48px; margin-bottom:18px; border-radius:50%; background:var(--blue-soft); color:var(--primary); font-size:28px; }
.no-routes-dialog .dialog-ok { width:100%; margin-top:12px; }.no-routes-dialog .dialog-close { color:var(--muted); }
.trip-highlights { display:flex; flex-wrap:wrap; gap:10px; margin:16px 0 12px; }
.trip-date,.trip-time { flex:1 1 105px; padding:12px 14px; background:var(--surface); border:1px solid var(--border); border-radius:10px; }
.trip-highlights span { display:block; font-size:11px; color:var(--muted); margin-bottom:6px; }
.trip-highlights strong { display:block; font-size:20px; color:var(--navy); line-height:1.3; white-space:nowrap; }
.trip-time { background:var(--blue-soft); border-color:var(--blue-border); }.trip-time strong { font-size:27px; color:var(--link); }
.trip-availability { display:flex; align-items:center; flex-wrap:wrap; gap:8px; padding:12px 14px; border-left:4px solid var(--primary); border-radius:8px; background:var(--blue-soft); color:var(--navy); }
.trip-availability>span { font-size:13px; font-weight:700; }.trip-availability>strong { font-size:28px; line-height:1; color:var(--link); }.trip-availability>small { font-size:12px; color:var(--muted); }
.trip-availability-full { border-left-color:var(--muted); background:var(--surface); }.trip-availability-full>strong { color:var(--muted); }
