Help
RSS
API
Feed
Maltego
Contact
Domain > www.virail.es
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2014-06-23
141.101.116.77
(
ClassC
)
2014-07-19
104.28.26.10
(
ClassC
)
2024-08-10
104.21.66.91
(
ClassC
)
Port 80
HTTP/1.1 301 Moved PermanentlyDate: Sat, 10 Aug 2024 06:49:18 GMTContent-Type: text/htmlContent-Length: 167Connection: keep-aliveCache-Control: max-age3600Expires: Sat, 10 Aug 2024 07:49:18 GMTLocation: https://www.virail.es/Report-To: {endpoints:{url:https:\/\/a.nel.cloudflare.com\/report\/v4?spQPFR249hPHjTCcijCmgjePM1ZHwLVQ32FHIs9WX1jssLaYouE6JFdkn3rk0bp3sBJm%2B8eZQmQxYsZGfwWLn34u3VpXw6mguH6JRs3GjJJSKj89ic0geogCwT%2FpkNsvR},group:cf-nel,max_age:604800}NEL: {success_fraction:0,report_to:cf-nel,max_age:604800}Server: cloudflareCF-RAY: 8b0e0b95390aebbb-SEAalt-svc: h3:443; ma86400 html>head>title>301 Moved Permanently/title>/head>body>center>h1>301 Moved Permanently/h1>/center>hr>center>cloudflare/center>/body>/html>
Port 443
HTTP/1.1 200 OKDate: Sat, 10 Aug 2024 06:49:19 GMTContent-Type: text/htmlTransfer-Encoding: chunkedConnection: keep-alivev-pagetype: IndexVary: Accept-EncodingCF-Cache-Status: DYNAMICReport-To: {endpoints:{url:https:\/\/a.nel.cloudflare.com\/report\/v4?sF2OrYDKP46b5XVSo4BAaFB0KOGQwx544ipj%2BSP7%2FXUbV8qFxgPEzFQMuf1wOc8O7Tve%2FhU1xZFsvdNq5VKmkLmHQCaYExGhmXWk0n1l1GXURKV%2BaU60cOwCpLxMJ0hrk},group:cf-nel,max_age:604800}NEL: {success_fraction:0,report_to:cf-nel,max_age:604800}Server: cloudflareCF-RAY: 8b0e0b95ac2dc390-SEAalt-svc: h3:443; ma86400 !DOCTYPE html>html langes classscroll-smooth> head>title>Encuentra billetes baratos en línea: horarios y precios/title>meta charsetUTF-8>meta nameversion content0.3.49>meta namegroup contentIndex>meta namebranch contentmaster>meta namedescription contentvirail encuentra billetes baratos en línea. Compara y encuentra los billetes más baratos para tu viaje.>meta nameviewport contentwidthdevice-width, initial-scale1, interactive-widgetresizes-content>meta http-equivContent-Type contenttext/html; charsetutf-8>meta http-equivX-UA-Compatible contentIEedge>link relpreload href/vendor/cookieconsent@v2.9.0/cookieconsent.js asscript>link relpreconnect hrefhttps://flyer.virail.app>link relpreconnect hrefhttps://accounts.google.com>link relpreconnect hrefhttps://www.googletagmanager.com/>link relpreconnect hrefhttps://fonts.googleapis.com>link relpreconnect hrefhttps://fonts.gstatic.com crossorigin>link relstylesheet hrefhttps://fonts.googleapis.com/css2?familyRubik:wght@300;400;500;600;700&displayswap>meta namegoogle-site-verification content0vYR8fXYwqx8bx4qFW_-cMhsdppRgCksZK-xRO2dxe0>meta propertyfb:app_id content246892782122350>meta nametheme-color content#49B0B2>meta nameformat-detection contenttelephoneno>meta namerobots contentindex,follow>link relapple-touch-icon sizes180x180 href/apple-touch-icon.png>link relicon typeimage/png href/favicon-32x32.png sizes32x32>link relicon typeimage/png href/favicon-16x16.png sizes16x16>link relmanifest href/manifest.json>link relmask-icon href/safari-pinned-tab.svg color#49B0B2>script typetext/javascript> window.virail Object.assign(window.virail || {}, { momentjs: (function () { var es { months: enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre.split( _ ), monthsShort: function (m, format) { if (!m) { return ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic..split( _ ); } else if (/-MMM-/.test(format)) { return ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic.split(_) m.month() ; } else { return ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic..split( _ )m.month(); } }, monthsRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, monthsShortRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, monthsParse: /^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i, , longMonthsParse: /^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i, , shortMonthsParse: /^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i, , weekdays: domingo_lunes_martes_miércoles_jueves_viernes_sábado.split(_), weekdaysShort: dom._lun._mar._mié._jue._vie._sáb..split(_), weekdaysMin: do_lu_ma_mi_ju_vi_sá.split(_), weekdaysParseExact: true, longDateFormat: { LD: dddd, D MMM, LT: H:mm, LTS: H:mm:ss, L: DD/MM/YYYY, LL: D de MMMM de YYYY, LLL: D de MMMM de YYYY H:mm, LLLL: dddd, D de MMMM de YYYY H:mm, }, calendar: { sameDay: function () { return hoy a la + (this.hours() ! 1 ? s : ) + LT; }, nextDay: function () { return mañana a la + (this.hours() ! 1 ? s : ) + LT; }, nextWeek: function () { return dddd a la + (this.hours() ! 1 ? s : ) + LT; }, lastDay: function () { return ayer a la + (this.hours() ! 1 ? s : ) + LT; }, lastWeek: function () { return ( el dddd pasado a la + (this.hours() ! 1 ? s : ) + LT ); }, sameElse: L, }, relativeTime: { future: en %s, past: hace %s, s: unos segundos, ss: %d segundos, m: un minuto, mm: %d minutos, h: una hora, hh: %d horas, d: un día, dd: %d días, w: una semana, ww: %d semanas, M: un mes, MM: %d meses, y: un año, yy: %d años, }, dayOfMonthOrdinalParse: /\d{1,2}º/, ordinal: %dº, week: { dow: 1, // Monday is the first day of the week. doy: 4, // The week that contains Jan 4th is the first week of the year. }, invalidDate: Fecha inválida, }; return es;})() })/script> script typetext/javascript>(function(){const config {abtest:{clicktripz:parallax,feed:booking,flatfee:true,flixbus:default,googleonetap:hidden,roundtripdeeplink:single},locale:es,stdLocale:es,timezone:Europe/Madrid,tld:es};const currency EUR;const currencyList {AUD:{currency:AUD,symbol:$},ARS:{currency:ARS,symbol:$},BGN:{currency:BGN,symbol:лв},BRL:{currency:BRL,symbol:R$},CAD:{currency:CAD,symbol:$},CHF:{currency:CHF,symbol:Fr},CLP:{currency:CLP,symbol:$},CNY:{currency:CNY,symbol:¥},COP:{currency:COP,symbol:COL$},CZK:{currency:CZK,symbol:Kč},DKK:{currency:DKK,symbol:kr},EUR:{currency:EUR,symbol:€},GBP:{currency:GBP,symbol:£},HUF:{currency:HUF,symbol:Ft},INR:{currency:INR,symbol:₹},JPY:{currency:JPY,symbol:¥},NZD:{currency:NZD,symbol:$},MXN:{currency:MXN,symbol:$},MYR:{currency:MYR,symbol:RM},PLN:{currency:PLN,symbol:zł},RON:{currency:RON,symbol:lei},RUB:{currency:RUB,symbol:Br},THB:{currency:THB,symbol:฿},TRY:{currency:TRY,symbol:₺},UAH:{currency:UAH,symbol:₴},USD:{currency:USD,symbol:$},VND:{currency:VND,symbol:₫},SGD:{currency:SGD,symbol:S$}};const geoLocation {lat:40.250823,lng:-3.4559187};const firstDayOfTheWeek 1;const tab _blank;const triggerbooking ;const pageType Index;const monthNames Enero,Febrero,Marzo,Abril,Mayo,Junio,Julio,Agosto,Septiembre,Octubre,Noviembre,Diciembre;const days Dom,Lun,Mar,Mié,Jue,Vie,Sáb;const onePassenger {{ n }} Pasajero;const manyPassengers {{ n }} Pasajeros;const i18n {search:{passengersLabel:Pasajeros,pagination:{nextButton:Next,previousButton:Previous},sort:{options:{duration:Duración,departureV2:Hora de salida,price:Precio,departure:Partida,durationV2:Más rápido,co2V2:El más ecológico,recommended:Recomendado,arrival:Llegada,priceV2:Más barata,recommendedV2:Barato y rápido},label:Ordenar por},connections:{outwardSelectionButton:Seleccionar ida,durationLabel:Duración,labels:{fastest:Más rápido,from:desde,best:Indicado,cheapest:Más barato},detailsLink:Comprobar detalles,hideDetails:Ocultar detalles,stopAndWaitFor:Deténgase y espere {{difference}},clickoutButton:Ver oferta,cancelRoundtripButton:Cancelar,changes:{many:{{ n }} transbordos,direct:directo,one:{{ n }} transbordo/s},waitingTimeLabel:Tiempo de espera,roundtripSelectionButton:Seleccionar vuelta,showDetails:Comprobar detalles,noResults:Sin resultados,resultCountLabel:{{ count }} resultados},dateReturnlabel:Fecha de vuelta,filters:{tabs:{all:Todos los medios de transporte,mixed:Combinado,car:Compartir Coche,bus:Autobús,plane:Vuelo,rentalcar:Coche de alquiler,train:Tren},titles:{departures:Estación de salida,arrivals:Estación/aeropuerto de llegada,departureTime:Salida,price:Precio,changes:Cambios,arrivalTime:Llegada,duration:Duración,companies:Compañías,facilities:Instalaciones},intervals:{afternoon:Mediodía,night:Noche,evening:Tarde,morning:Mañana,earlyMorning:Temprano en la mañana},dateStrings:{sameMonthDateInterval:{{ first }}, {{ last }} {{ month }},dateAndMonth:D MMM,timeWithDate:D MMM, LT,differentMonthDateInterval:{{ first }}, {{ last }}},label:Filtrar,resetFiltersLabel:Restablecer filtros,noFilteredResultMessage:No hay resultados con estos filtros,applyButtonLabel:Aplicar filtros,mobile:{title:Todos los filtros,resetBtn:Reiniciar},facilities:{wifi:Wifi,accessibility:Accesibilidad,bicycle:Bicicleta,food_and_drink:Comida y bebida,luggage:Equipaje,power_sockets:Tomas de corriente,quiet_zone:Coche en Silencio,sleeper_couchette:Sofá cama,air_con:Aire acondicionado},noResultMessage:No pudimos encontrar lo que estás buscando. Refinar su búsqueda con diferentes términos podría ser la solución. ¡Démosle otra oportunidad!},autocomplete:{lastSearchResult:Su último resultado de búsqueda,allStations:Todas las estaciones,searchResults:Resultados de la búsqueda,typeMore:Escriba más para obtener resultados más relevantes.,suggestionHeader:Escriba más para obtener mejores resultados},bestDealsLabel:Mejores ofertas para,form:{addReturn:Regreso,modes:{oneWayLabel:Ida,roundTripLabel:Ida y vuelta},cancelButton:Cancelar,searchAccomodationsBooking:Busca también alojamiento con Booking.com,departurePlaceLabel:Selecciona una salida,departureDateLabel:Fecha,doneButton:Hecho,arrivalPlaceLabel:Selecciona un destino,passengers:{label:Pasajeros,one:{{ n }} Pasajero,many:{{ n }} Pasajeros},searchButton:Buscar,arrivalDateLabel:Fecha de vuelta,submit:Entregar,remove:Remover,exploreButton:Explorar,departurePlacePlaceholder:Yéndose de...,destinationPlacePlaceholder:Ir a...},ads:{premiumPlacement:{trainline:{buttonLabel:Plusxxx,body:Trouvez des billets de train pas chers pour Lyon,price:A partir de,category:Offre spéciale},sncf:{bookNow:Reservar,from:A partir de,body:span>{{from}}/span> – span>{{to}}/span> en tren con span>OUI.sncf/span>},movacar:{price:Autovermietung für €1},labels:{from:A partir de}}},leisureLabel:ocio,selectLabel:Seleccionar,passengerLabel:Pasajero,selection:{modes:{outward:Ida,roundtrip:Vuelta},continueButton:Continuar,title:Detalles del viaje,readBefore:Leer antes,redirectText:Será redirigido a nuestro socio {{ redirectProvider }}.},destinationLabel:Selecciona un destino,pickUpLocationLabel:Lugar de recogida,departureLabel:Selecciona una salida,roundTripLabel:Ida y vuelta,summary:{redirect:{landing:{search:Lo redireccionaremos a la página de búsqueda de {{ provider }} con sus condiciones de búsqueda ya rellenadas. Encontrará la misma oferta allí, en la que debe hacer clic para comenzar la compra.,default:Lo redireccionaremos al sitio web de {{ provider }} para comenzar la compra.,booking:Lo redireccionaremos a la página de reserva de {{ provider }} de la oferta seleccionada para finalizar su compra.},type:{direct:Va a reservar directamente con {{ provider }}, sin utilizar una plataforma de reserva de terceros.br />br />{{ landingText }}br />br />Siempre mostramos el precio completo, incluyendo una estimación de todos los impuestos y cargos obligatorios de acuerdo con lo que nos informa nuestro socio. A veces los precios se actualizan: b>verifique cuidadosamente el precio final/b> en el sitio web del socio, así como todos los detalles y condiciones de los billetes (especialmente cuando viaja con niños).,default:Va a reservar con {{ provider }}.br />br />{{ landingText }}br />br />Siempre mostramos el precio completo, incluyendo una estimación de todos los impuestos y cargos obligatorios de acuerdo con lo que nos informa nuestro socio. A veces los precios se actualizan: b>verifique cuidadosamente el precio final/b> en el sitio web del socio, así como todos los detalles y condiciones de los billetes (especialmente cuando viaja con niños).,aggregator:Va a reservar con {{ provider }}, que es el socio oficial de reservas de {{ provider }}. Lo redireccionaremos al sitio web de {{ provider }}.br />br />{{ landingText }}br />br />Siempre mostramos el precio completo, incluyendo una estimación de todos los impuestos y cargos obligatorios de acuerdo con lo que nos informa nuestro socio. A veces los precios se actualizan: b>verifique cuidadosamente el precio final/b> en el sitio web del socio, así como todos los detalles y condiciones de los billetes (especialmente cuando viaja con niños).}}},datetime:{datepicker:{dateFormat:DD/MM/YYYY,lowPricesText:El precio es más bajo de lo habitual.}},onewayLabel:Ida,bookingInfo:{roomsFromPrice:Habitaciones desde {{price}} con {{bookingLogo}},findRoom:encontrar habitación,stayIn:Quédate en {{destination}}},pickUpDateLabel:Fecha de recogida,reasonLabel:Propósito,searchLabel:Buscar,tripLabel:Viaje,dateLabel:Fecha,businessLabel:negocios,bookingLabel:Busca también alojamiento con Booking.com,resultHeadText:{outward:Seleccionar ida,return:Seleccionar retorno},progress:{label:Comparamos múltiples sitios para asegurarnos de conseguir la mejor oferta para ti.},rentalcars:{heading:¿Busca un automóvil en {{ origin }}?},marketplace:{showMoreDeals:Mostrar más ofertas,showDealsWithCountPlural:{{n}} opciones desde,showDealsWithCountSingular:{{n}} oferta,bookVia:vía {{ seller }}},summaryPage:{redirectText:Serás redirigido a {{ redirectProvider }}.},makeItRoundtrip:Ahorre dinero reservando su viaje de regreso ahora.},login:{signUpLogin:{bestPrices:Encuentra los mejores precios,emailNotifications:Notificaciónes de Correo Electrónico,noSpam:No es basura,partnersDeals:Reciba notificaciones sobre las ofertas de socios de Virail,passwordUpdated:Contraseña actualiza,forgotPassword:Has olvidado tu contraseña,emailPlaceholder:Introduce tu correo electrónico},reset:{description:Utilice el código de verificación que le enviamos a su correo electrónico para restablecer su contraseña.,heading:Restablecer la contraseña,button:Actualiza contraseña,verificationCodePlaceholder:Introduce el código de verificación},verify:{heading:¡Te hemos enviado un e-mail de confirmación!,button:Verificar correo electrónico,notice:Verifique su carpeta de correo basura/spam antes de contactarnos, ya que es muy común tener problemas de entrega de correo electrónico debido a los filtros automáticos.,resendVerificationCodeIn:Reenviar código de verificación en {{ countdown }} seg,resendVerificationCode:Vuelva a enviar el código de verificación,sendVerificationCode:Envíe el código de verificación},forgot:{emailSent:Código de verificación enviado por correo electrónico,description:No hay problema. Te enviaremos el código de verificación a tu correo electrónico. Utilice este código para restablecer su contraseña.,heading:¿Olvidaste tu contraseña?},field:{password:Contraseña,confirmPassword:confirmar Contraseña,verificationCode:Código de verificación},signup:{title:Crear una nueva cuenta,google:Regístrate con Google,signup:Inscribirse,signin:¿Ya tienes una cuenta?,signupWithEmail:Ingresa con e-mail},signin:{google:Inicia sesión con Google,title:Bienvenido de nuevo,signin:Iniciar sesión,signup:¿No tienes una cuenta?},signupAndSignin:{or:o},priceTracker:{emailErrorMessage:Por favor, introduce una dirección de correo electrónico válida,title:Precios de los trenes de seguimiento,description:Comparte tu correo electrónico y realizaremos un seguimiento de los precios de los billetes de tren por ti.,submitBtn:Crear rastreador}},pa:{sidebar:{newsletterSettings:Configuración del boletín,profile:Perfil,recentSearches:Búsquedas recientes,helpAndSupport:Ayuda y soporte,priceTracker:Rastreador de precios},deals:{comingSoon:Pronto vendrán los tratos.},input:{genderOptions:{female:Femenina,male:Masculino,other:otro,preferNotSay:Prefiero no decirlo},firstName:Nombre de pila,currency:Divisa,phoneNumber:Número de teléfono,emailAddress:Dirección de correo electrónico,defaultLanguage:Idioma predeterminado,country:País,gender:Género,lastName:Apellido},profile:{languageAndCurrency:Idioma y divisas,deleteThisAccount:Eliminar esta cuenta,deleteAccountDescription:Una vez que eliminas tu cuenta, no hay vuelta atrás. Escriba su dirección de correo electrónico a continuación para aprobar la eliminación de su cuenta.,personalInformation:Informacion personal},header:{accountManagement:Administración de cuentas,account:Mi cuenta},comingSoon:{description:Actualmente estamos trabajando en nuevas actualizaciones y funciones para nuestro sitio web. ¡Mantente al tanto para más información y ser uno de los primeros en probarlas!,title:Próximamente},newsletterSettings:{options:{productUpdates:{description:Reciba notificaciones cuando actualicemos nuestros productos.,title:Actualizaciones de Producto},biWeeklyInspirational:{title:Inspiración quincenal,description:Recibe notificaciones sobre destinos de viaje inspiradores.},deals:{title:Ofertas,description:Reciba notificaciones sobre nuevas ofertas}}},actions:{deleteAccount:Borrar cuenta},recentSearches:{deleteRecentSearch:{title:Eliminar búsqueda reciente,question:¿Quieres eliminar tu búsqueda?},searchLink:Buscar billete aquí,empty:Tu historial de búsquedas recientes está vacío.},priceTracker:{deletePriceTracker:{title:Eliminar rastreador de precios,question:¿Quieres eliminar tu rastreador de precios?},empty:No se encontró ningún rastreador de precios. ¡Habilite el seguimiento de precios ahora para nunca perderse grandes ofertas de viaje!,anyDate:Cualquier fecha,trackPricesUntil:Seguimiento de precios hasta,hoverDescription:Recibirá notificaciones cuando cambien los precios de los billetes de tren para las fechas elegidas, junto con útiles consejos de viaje. También puede realizar un seguimiento de las fechas y recibir actualizaciones periódicas por correo electrónico cuando los precios son bajos.,mobileDescription:Reciba actualizaciones por correo electrónico cuando cambie el precio de los boletos de tren,unsubscribe:{successful:desuscripción exitosa,description:Se ha dado de baja con éxito de Price Tracker.},modal:{enableText:{specificDates:Recibirá correos electrónicos cuando cambie el precio del tren para {{ departure }} - {{ arrival }} entre {{ trackerStartDate }} - {{ trackerEndDate }},anyDates:Recibirá correos electrónicos cuando cambie el precio del tren para {{ departure }} - {{ arrival }} entre cualquier fecha},disableText:Rastreador de precios deshabilitado para {{ departure }} - {{ arrival }}},mobile:{specific:{description:Reciba actualizaciones por correo electrónico cuando los precios de los boletos de tren cambien para la fecha buscada},any:{description:Obtenga actualizaciones periódicas cuando los precios de los billetes de tren sean bajos para {{ departure }} - {{ arrival }}}},trainPriceTracker:Rastreador de precios de trenes}},footer:{termsConditions:Condiciones de uso,transportation:{bus:Autobús,plane:Vuelos,train:Trenes,car:Compartir coche,rentalcar:Alquiler de coches},faq:FAQ,career:Carrera,markets:Mercados,aboutVirail:About Virail,security:Seguridad,virail:Virail,imprint:Aviso legal,aboutUs:¿Quiénes somos?,privacy:Política de privacidad,currencies:Currencies,international:Internacional,virailInYourCountry:Virail {{country}}},modal:{login:{signInToGetExclusiveDeals:Regístrese en Virail y obtenga ofertas de viaje exclusivas},deal:{legalWarning:Al registrarse, acepta nuestros términos y condiciones. Puede encontrar más información en nuestro {{imprint}},tryingToSubscribe:Te estamos suscribiendo ...,title:Obtenga ofertas y descuentos span> gratis /span> br> cuando se registre,errorDescription:Se produjo un error al suscribirse a nuestras ofertas. Inténtelo de nuevo en un minuto.,joinUsWithoutCity:Únase a nuestra lista de espera para ofertas y descuentos,offerExpiresIn:Oferta expira en,joinUs:Únase a nuestra lista de espera br> para ofertas y descuentos en br> {{city}},andMore:¡Y más!,signUp:Inscríbeme,thankYou:¡Gracias! br> Te hemos añadido a la ist de correo electrónico de.,joinedToday:{{n}} se unió hoy,exclusiveAccessInfo:Acceso exclusivo a promociones y ofertas especiales,aheadOfYou:{{n}} personas delante de ti,tryAgain:Intentar otra vez,itsFree:es gratis,errorOnSubscription:¡Algo salió mal!,percentOffPerk:{{n}}% de descuento,cashbackPerk:{{n}}% cashback},mapView:{buttonText:Ver el mapa,findAPlaceToStay:Encontrar un lugar donde quedarse}},vam:{receiveExclusiveDeals:Deseo recibir ofertas exclusivas y actualizaciones de productos enviadas directamente a mi bandeja de entrada.,signIn:Iniciar sesión,signOut:Cerrar sesión,signInLong:Inicia sesión o crea una cuenta},landingPage:{faq:{a11:Hay una media de {{ directConnectionsAllAvg }} desde {{ from }} para ir a {{ to }}. Sin embargo, puede haber tantos como {{ directConnectionsPastMax }} o tan pocos como {{ directConnectionsAllMin }} dependiendo del día.,a2:El billete más barato que puedes conseguir de {{ from }} a {{ to }} es {{ minPrice }}. Recomendamos reservar lo antes posible y en horas no punta para conseguir el billete más económico posible.,a6:De {{ from }} hasta {{ to }} hay una media de {{ connectionCount }} conexiones al día. Sin embargo, dependiendo del día, hay un máximo de {{ maxConnectionCount }} y como mínimo {{ minConnectionCount }} conexiones.,q14:¿Existe un {{ transport }} directo desde {{ from }} a {{ to }}?,q11:¿Cuántas conexiones directas van de {{ from }} a {{ to }}?,a13:El tiempo de viaje más rápido por {{ transport }} entre {{ from }} y {{ to }} es de {{ fastestDuration }}.,edgeCases:{busStations:estaciones de autobús,busPlural:autobuses,trainPlural:trenes,trainStations:estaciones de tren},a3:La distancia de {{ from }} a {{ to }} es {{ distance }}.,q8:¿A qué hora sale el último {{ transport }} de {{ from }} a {{ to }}?,q1:¿Cuánto cuesta un billete de {{ transport }} de {{ from }} a {{ to }}?,a1:Un billete de {{ transport }} de {{ from }} a {{ to }} cuesta {{ avgPrice }}. Sin embargo, el precio varía en función de la antelación con la que compres y de si es una hora del día muy concurrida. En ocasiones, puedes encontrarlos tan baratos como {{ minPrice }}.,q4:¿Cuánto dura el trayecto en {{ transport }} entre {{ from }} y {{ to }}?,a9:Si puedes, te recomendamos que reserves tu billete lo antes posible para asegurarte un mayor ahorro. El billete de {{ transport }} más barato que hemos encontrado es de {{ futureMinPrice }}, pero puede estar sujeto a cambios dependiendo de la demanda.,q7:¿A qué hora sale el primer {{ transport }} de {{ from }} a {{ to }}?,a5:El trayecto de {{ from }} a {{ to }} está cubierto por {{ carrierCount }} empresa(s). En Virail puedes ver que {{ carrier }} prestan servicios en esta ruta.,a15:El viaje en {{ transport }} de {{ from }} a {{ to }} produce {{ emission }}kg de emisiones de CO2.,q15:¿Cuánto CO2 emite un viaje en {{ transport }} desde {{ from }} hasta {{ to }}?,a8:El último {{ transport }} de {{ from }} a {{ to }} sale a las {{ lastDepartureTime }}. Sin embargo, asegúrate de consultar con nosotros el horario del día en que quieres viajar, ya que la hora puede variar.,q12:¿Cuál es la manera más ecológica de viajar de {{ from }} a {{ to }}?,q2:¿Cuál es el billete de {{ transport }} más barato de {{ from }} a {{ to }}?,a14:Sí, hay un {{ transport }} directo entre {{ from }} y {{ to }}.,a4:El viaje de {{ from }} a {{ to }} dura una media de {{ avgDuration }}. Sin embargo, la opción más rápida te llevará hasta allí en {{ allMinDuration }}.,q9:¿Debo reservar mi billete con antelación desde {{ from }} hasta {{ to }}?,q10:¿A qué estaciones puedo ir desde {{ from }} hasta {{ to }}?,a7:El primer {{ transport }} desde {{ from }} hasta {{ to }} sale a las {{ firstDepartureTime }}. Sin embargo, no olvides consultar con nosotros el horario del día en que quieres viajar, ya que la hora puede variar.,q3:¿Cuál es la distancia entre {{ from }} y {{ to }} en {{ transport }}?,q6:¿Cuántos {{ transportPl }} al día van de {{ from }} a {{ to }}?,q13:¿Cuál es el trayecto más rápido entre {{ from }} y {{ to }} en {{ transport }}?,q5:¿Qué compañías operan desde {{ from }} hasta {{ to }}?,a10:Hay {{ departureStationCount }} estación(es) de las que puedes salir de {{ from }} para ir a {{ to }}. Puedes ir desde {{ departureStation }} y puedes llegar a {{ arrivalStation }}.,a11_updated:Hay una media de {{ directConnections }} desde {{ from }} para ir a {{ to }}. ,a6_updated:De {{ from }} hasta {{ to }} hay una media de {{ connectionCount }} conexiones al día.},accommodation:{hotel:Hotel,night:Noche,exploreWith:Explora con {{ site }},unavailable:No disponible,distanceFromCenter:del centro,starHotel:Hotel de {{ rating }} estrellas,heading:Alojamiento que te puede gustar en {{ destination }},unavailableDescription:No se ha encontrado alojamiento en la ubicación seleccionada para hoy.,capacity:Capacidad,roomType:Tipo de habitación,kids:Niños,rooms:{adult:Adulto,adults:Adultos},budget:{priceRange:Rango de precios,text:Presupuesto,lessThan:Menos de {{ price }},between:Entre {{ lowPrice }} y {{ highPrice }},greaterThan:Mayor que {{ price }}},rating:{star:Estrella,stars:Estrellas,text:Puntuación},review:{wonderful:Maravilloso: {{ reviewScore }}+,veryGood:Muy bueno: {{ reviewScore }}+,good:Bueno: {{ reviewScore }}+,pleasent:Agradable: {{ reviewScore }}+,text:Puntuación de la reseña},propertyTypes:{apartments:Apartamentos,guestAccommodation:Alojamiento para huéspedes,hostels:Hostales,hotels:Hoteles,motels:Moteles,resorts:Resorts,residences:Residencias,bedAndBreakfasts:Alojamiento y desayuno,ryokans:Ryokans,farmStays:Estancias rurales,holidayParks:Parques de vacaciones,villas:Villas,campsites:Campings,boats:Barcos,guestHouses:Casas de huéspedes,uncertain:Incierto,inns:Posadas,aparthotels:Apartahoteles,holidayHomes:Casas de vacaciones,lodges:Albergues,homestays:Alojamiento en familia,countryHouses:Casas de campo,luxuryTents:Carpas de lujo,capsuleHotels:Hoteles cápsula,loveHotels:Hoteles románticos para parejas,riads:Riads,chalets:Chalets,condos:Condominios,cottages:Cabañas,economyHotels:Hoteles económicos,gites:Casas rurales,healthResorts:Balnearios,cruises:Cruceros,studentAccommodation:Alojamiento para estudiantes,hotel:Hotel,apartment:Apartamento,aparthotel:apartahotel,guestHouse:Pensión,camping:Camping,capsuleHotel:Hotel cápsula,hostel:Albergue,resort:Complejo turístico,bedAndBreakfast:Bed & Breakfast,loveHotel:Hotel para parejas,villa:Villa,motel:Motel,tentedCamp:Campamento de tiendas de campaña,condo:Condominio,holidayHome:Casa de vacaciones,inn:Posada,japaneseStyleBusinessHotel:Hotel de negocios de estilo japonés,boat:Bote,ryokan:Ryokan,sanatorium:Sanatorio,gite:Casa rural,holidayPark:Parque de vacaciones,lodge:Albergue,cottage:Cabaña,homestay:Alojamiento en familia,farmStay:Estancia rural,chalet:Chalet,riad:Riad,countryHouse:Casa de Campo,text:Tipo de propiedad,residence:Residencia,cruise:Crucero,healthResort:Balneario,economyHotel:hotel económico,campsite:Cámping,luxuryTent:Tienda de lujo},distance:{options:Menos de {{ distance }} km,text:Distancia},sort:{price:Lo más barato,popularity:Más popular,distance:Más cercano,ranking:Mejor clasificado,review_score:Mejor valorado,stars:Clasificación de estrellas altas,text:Ordenar por},starAccommodationType:{{ rating }} Estrella {{ accommodationType }},starsAccommodationType:{{ rating }} Estrellas {{ accommodationType }},unavailableDesc:No se encontraron alojamientos. Intenta ajustar o eliminar los filtros de búsqueda.,viewMore:Ver más,roomTypes:{apartment:Apartamento,presidentialSuite:Suite presidencial,bridalSuite:Suite nupcial,quadruple:Cuádruple,suite:Suite,juniorSuite:Suite junior,triple:Triple,twin:Doble,double:Doble,single:Sencilla,executiveSuite:Suite ejecutiva,studio:Studio,family:Familiar,businessSuite:Suite de negocios,penthouse:Penthouse,chalet:Chalet,royalSuite:Suite Real,bungalowChalet:Bungalow/chalet,unknown:desconocido,executiveRoom:Habitación ejecutiva,bungalow:Bungalow,bedInDormitory:Cama en dormitorio,dormitoryRoom:Dormitorio,twinDouble:Doble/matrimonial,doubleForSingleUse:Doble para uso individual,superiorRoom:Habitación superior,holidayHome:Casa vacacional,mobileHomeTent:Casa móvil/Tienda,villa:Villa,mobileHome:Casa móvil,tent:Carpa,emptySpot:Lugar vacío,partnerOffer:Oferta de socio,private5BedRoom:Habitación privada con 5 camas,private6BedRoom:Habitación privada con 6 camas,largePrivateRoom:Habitación privada grande},filterBy:Filtra por,apply:Aplicar,back:Atrás,checkIn:Check-in:,checkOut:Check-out:},journeySummary:{buttonText:Busca el Mejor Precio,text:El viaje de {{ from }} a {{ to }} por {{ transport }} es {{ distance }} y toma {{ duration }}. Hay {{ connectionCount }} conexiones por día, con la primera salida en {{ firstDeparture }} y la última en {{ lastDeparture }}. Es posible viajar de {{ from }} a {{ to }} por {{ transport }} por tan solo {{ minPrice }} o tanto como {{ maxPrice }}. El mejor precio para este trayecto es {{ bestPrice }}.,title:De {{ from }} a {{ to }} en {{ transport }}},seasonalCalendar:{bestTimeToBook:Mejor momento para reservar un viaje de {{ departure }} a {{ arrival }},virailProTip:Consejo profesional de Virail ✌,virailProTipContent:Reservando con 10 días de antelación ahorra un 10% de media},co2:{faq:{q2:¿Cuánto CO2 ahorro tomando el tren entre {{ from }} y {{ to }}?,a1:Las emisiones de CO2 del {{ transport }} entre {{ from }} y {{ to }} son de {{ emission }}kg.,q1:¿Cuáles son las emisiones de CO2 de {{ from }} a {{ to }} en tren?,a2:Si coges el tren entre {{ from }} y {{ to }} ahorrarás {{ emissionDifTF }}kg de emisiones de Co2 en comparación con un vuelo, {{ emissionDifTB }}kg en comparación con un autobús y {{ emissionDifTC }}kg en comparación al coche.},header:{{ from }} a {{ to }} Emisiones de CO2 por {{ transport }}},connectionList:{header:Horarios de {{ from }} a {{ to }} en {{ transport }}},weeklyCalendar:{header:Comparar precios y billetes de {{ from }} a {{ to }}},partnerSupport:{text:Trabajamos con más de 100 partners para ofrecerte los mejores precios del mercado.},partnersSupport:{logos:/v4/images/references/trenitalia.png,\n/v4/images/references/flixbus.png,\n/v4/images/references/deutsche-bahn.png,\n/v4/images/references/blablacar.png,\n/v4/images/references/ouisncf.png,\n/v4/images/references/trainline.png,\n/v4/images/references/sbb.png,\n/v4/images/references/busbud.png,\n/v4/images/references/obb.png,\n/v4/images/references/omio.png,\n/v4/images/references/regioJet.png,\n/v4/images/references/kayak.png,\n/v4/images/references/kiwi.svg,\n/v4/images/references/12Go.png,\n/v4/images/references/bookaway.png,\n/v4/images/references/rentalcars.png,\n/v4/images/references/tictactrip.png,\n/v4/images/references/kombo.png,\n/v4/images/references/combigo.png,\n/v4/images/references/saveatrain.png},cheapTicketAdvice:{header:Billetes de {{ transport }} baratos desde {{ origin }} hasta {{ destination }},subHeader:¿Buscas la mejor oferta en un billete de tren para tu viaje? Aquí tienes 4 formas de conseguir billetes de tren baratos de {{ origin }} a {{ destination }}.,tips1:{header:Reserva con anticipación y ahorra,text:Si estás buscando la mejor oferta para tu viaje de {{ origin }} a {{ destination }}, reservar tus billetes de tren con antelación es una excelente manera de ahorrar dinero, pero ten en cuenta que los billetes anticipados generalmente no están disponibles hasta 3 meses antes de la fecha de tu viaje.},tips2:{header:Sé flexible en tu horario de viaje y explora opciones fuera de las horas punta,text:Planificar tus viajes en horas de poca actividad no solo significa que podrás evitar las multitudes, sino que también puedes ahorrar dinero. Ser flexible con tu horario y considerar rutas u horarios alternativos tendrá un impacto significativo en la cantidad de dinero que gastas en llegar desde {{ origin }} hasta {{ destination }}.},tips3:{header:Consulta siempre las ofertas especiales,text:Revisar las últimas ofertas puede ayudarte a ahorrar mucho dinero, por lo que vale la pena tomarse el tiempo para buscar y comparar precios. Asegúrate de obtener la mejor oferta en tu billete y aprovecha las tarifas especiales para niños, jóvenes y personas mayores, así como los descuentos para grupos.},tips4:{header:Aprovecha el potencial de los trenes más lentos o de los trenes de conexión,text:Si estás planeando un viaje con algo de tiempo flexible, ¿por qué no optar por la ruta escénica? Tomar trenes más lentos o trenes de conexión que realizan más paradas puede ahorrarte dinero. Definitivamente, vale la pena considerarlo si se ajusta a tu horario.}},chart:{bestMonth:{heading:El mejor momento para reservar billetes baratos de {{transport}} de {{origin}} a {{destination}},text:Los billetes más baratos de {{transport}} de {{origin}} a {{destination}} son de {{min.price.month}}. El precio promedio suele ser de {{min.month.avg.price}}, pero si tienes suerte, puedes obtener un boleto por {{min.month.min.price}} con el precio más bajo. El momento más costoso para viajar es {{max.price.month}}, donde los precios pueden llegar a {{max.month.max.price}}, pero generalmente suelen costar {{max.month.avg.price}}.,train:{heading:Mejor momento para reservar billetes de tren baratos de {{origin}} a {{destination}},text:Los boletos de tren {{origin}} - {{destination}} más baratos se pueden encontrar por tan solo {{minPrice}} si tiene suerte, o {{avgPrice}} en promedio. El boleto más caro puede costar tanto como {{maxPrice}}.},bus:{heading:Mejor momento para reservar billetes de autobús baratos de {{origin}} a {{destination}},text:Los boletos de autobús {{origin}} - {{destination}} más baratos se pueden encontrar por tan solo {{minPrice}} si tiene suerte, o {{avgPrice}} en promedio. El boleto más caro puede costar tanto como {{maxPrice}}.},plane:{heading:Mejor momento para reservar billetes de avión baratos de {{origin}} a {{destination}},text:Los boletos de vuelo {{origin}} - {{destination}} más baratos se pueden encontrar por tan solo {{minPrice}} si tiene suerte, o {{avgPrice}} en promedio. El boleto más caro puede costar tanto como {{maxPrice}}.}},priceTravelDate:{heading:Precio al acercarse la fecha de salida,train:{text:Las compañías de trenes pueden cobrar precios de boletos más altos a medida que se acerca la fecha de salida. Los precios en los próximos días pueden oscilar entre {{minPriceDelta}} y {{maxPriceDelta}}, pero pueden estar sujetos a cambios. ¡Nuestro consejo es reservar lo antes posible para ahorrar hasta {{priceDeltaVariance}} en su viaje!,samePricesText:Los precios de los billetes de tren suelen fluctuar a medida que se acerca la fecha de salida. Sin embargo, para los próximos días los precios de los billetes de tren se mantienen estables en {{price}}.\nYa sea que planifique con anticipación o decida en el último momento, encontrará boletos dentro de un rango de precios similar. ¡Así que relájate y reserva cuando estés listo!\nRecuerde verificar los precios más recientes y la disponibilidad antes de reservar para asegurarse de tener la información más precisa para su viaje.},bus:{text:Las compañías de autobuses pueden cobrar precios de boletos más altos a medida que se acerca la fecha de salida. Los precios en los próximos días pueden oscilar entre {{minPriceDelta}} y {{maxPriceDelta}}, pero pueden estar sujetos a cambios. ¡Nuestro consejo es reservar lo antes posible para ahorrar hasta {{priceDeltaVariance}} en su viaje!,samePricesText:Los precios de los billetes de autobús suelen fluctuar a medida que se acerca la fecha de salida. Sin embargo, para los próximos días, los precios de los billetes de autobús se mantienen estables en {{price}}.\nYa sea que planifique con anticipación o decida en el último momento, encontrará boletos dentro de un rango de precios similar. ¡Así que relájate y reserva cuando estés listo!\nRecuerde verificar los precios más recientes y la disponibilidad antes de reservar para asegurarse de tener la información más precisa para su viaje.},plane:{text:Las aerolíneas pueden cobrar precios de boletos más altos a medida que se acerca la fecha de salida. Los precios en los próximos días pueden oscilar entre {{minPriceDelta}} y {{maxPriceDelta}}, pero pueden estar sujetos a cambios. ¡Nuestro consejo es reservar lo antes posible para ahorrar hasta {{priceDeltaVariance}} en su viaje!,samePricesText:Los precios de los billetes de avión suelen fluctuar a medida que se acerca la fecha de salida. Sin embargo, para los próximos días los precios de los billetes de avión se mantienen estables en {{price}}.\nYa sea que planifique con anticipación o decida en el último momento, encontrará boletos dentro de un rango de precios similar. ¡Así que relájate y reserva cuando estés listo!\nRecuerde verificar los precios más recientes y la disponibilidad antes de reservar para asegurarse de tener la información más precisa para su viaje.}},peakTravelTimes:{heading:Encuentra el mejor día para viajar a {{destination}} en {{transport}},text:Cuando se viaja de {{origin}} a {{destination}} en {{transport}}, {{min.demand.day}} es el día menos concurrido para viajar, con más personas viajando en un {{max.demand.day}}. En promedio, las horas pico para viajar son entre las 6:30 a. m. y las 9 a. m. de la mañana, o entre las 4 p. m. y las 7 p. m. de la noche. Para encontrar un billete barato a {{destination}}, te aconsejamos viajar en {{min.demand.day}} y fuera de las horas pico, si puedes.},peakTimes:{train:{heading:Encuentra el mejor día para viajar a {{destination}} en tren,text:Cuando viaje a {{destination}} en tren, si desea evitar las aglomeraciones, puede verificar la frecuencia de viaje de nuestros clientes en los próximos 30 días utilizando el gráfico a continuación. En promedio, las horas pico para viajar son entre las 6:30 a. m. y las 9 a. m. de la mañana, o entre las 4 p. m. y las 7 p. m. por la noche. Tenga esto en cuenta cuando viaje a su punto de partida, ya que es posible que necesite más tiempo para llegar, ¡especialmente en las grandes ciudades!},bus:{heading:Encuentra el mejor día para viajar a {{destination}} en autobús,text:Cuando viaje a {{destination}} en autobús, si desea evitar las aglomeraciones, puede verificar con qué frecuencia viajarán nuestros clientes en los próximos 30 días usando el gráfico a continuación. En promedio, las horas pico para viajar son entre las 6:30 a. m. y las 9 a. m. de la mañana, o entre las 4 p. m. y las 7 p. m. por la noche. Tenga esto en cuenta cuando viaje a su punto de partida, ya que es posible que necesite más tiempo para llegar, ¡especialmente en las grandes ciudades!},plane:{heading:Encuentra el mejor día para viajar a {{destination}} en avión,text:Cuando viaje a {{destination}} en avión, si desea evitar las aglomeraciones, puede verificar con qué frecuencia viajarán nuestros clientes en los próximos 30 días usando el gráfico a continuación. En promedio, las horas pico para viajar son entre las 6:30 a. m. y las 9 a. m. de la mañana, o entre las 4 p. m. y las 7 p. m. por la noche. Tenga esto en cuenta cuando viaje a su punto de partida, ya que es posible que necesite más tiempo para llegar, ¡especialmente en las grandes ciudades!}}},h1Title:{{transport}} {{from}} {{to}} desde {{minPrice}},route:{bus:{h1Claim:Bus {{from}} - {{to}} desde {{minPrice}}},train:{h1Claim:Tren {{from}} - {{to}} desde {{minPrice}}},plane:{h1Claim:Vuelo {{from}} - {{to}} desde {{minPrice}}}},calendar:{cheapest:Lo mas barato,highest:más alto},services:{power_sockets:Tomas de corriente,tableHeader:Instalaciones,air_con:Aire acondicionado,food_and_drink:Comida y bebida,wifi:Wi-Fi,accessibility:Accesibilidad,bicycle:Bicicleta,quiet_zone:Zona de silencio,sleeper_couchette:Dormitorio,luggage:Equipaje,header:Servicios a bordo {{ carriers }} de {{ origin }} a {{ destination }},infoText:Compara los servicios a bordo cuando viajes de {{ origin }} a {{ destination }} por {{ transport }}.,and:y},carriers:{header:Transportistas en esta ruta,infoText:Encuentra más información sobre los transportistas en esta ruta.},tableOfContent:{summary:Resumen,trainTimes:Horarios de trenes,calendar:Calendario,seasonality:Estacionalidad,carriers:Transportistas,accommodations:Alojamientos,facilities:Instalaciones,faq:Preguntas frecuentes,comparison:Comparación,busTimes:Horarios de autobuses,planeTimes:Horarios de vuelo,destinationTopRoutes:Rutas populares,destinationTopDepartures:Salidas populares,destinationSustainableTravel:Viajes sostenibles,destinationSummary:Resumen},ticketOptions:{header:Tipos de billetes y servicios desde {{ Origin }} hasta {{ Destination }},summaryText:Compara los diferentes tipos de billetes y servicios proporcionados por {{ carriers }} al viajar de {{ Origin }} a {{ Destination }}.},facilityDescription:{facilities:Servicios,description:Descripción,header:Descripción de la instalación,subText:Obtenga más información sobre las diferentes instalaciones disponibles a bordo de cada transportista en esta ruta.},carrierText:{and:y},transportTimes:{departureDate:Fecha de salida,changeDate:Cambiar fecha},interlinkingDestination:{title:{relatedPages:Destinos relacionados,nearbyDestinations:Otros destinos cercanos}},calendarDays:{0:{day:Hoy},1:{day:Mañana},2:{day:2 días},buttonTextFallback:Más,getTickets:Ver billetes,n:{day:{{n}} días}}},help_center:{title:Centro de ayuda}};const env {AUTOCOMPLETE_API_URL:https://autocomplete.virail.app/api/v1/search?q{{ input }}&locale_code{{ locale }}&lat{{ lat }}&lng{{ lng }}&sortcity_population:desc,PERSONAL_AREA_ENDPOINT:https://personal-area.virail.app,FLYER_API_URL:https://flyer.virail.app,WEATHER_API_URL:https://weather.virail.app,SEARCH_API_URL:https://search.virail.app};const envs {BASE_URL:https://www.virail.es};const environment production;const cfHeaders {autocomplete:{}};const convertInlineVariableFunction function (str, args, pl null) { if (!!pl) { str args 1 ? str : pl; args { n: args }; } for (let i in args) { str str.replace( new RegExp(\\{\\{\\s* + i + \\s*?\\}\\}, g), argsi ); } return str; }window.MONTH_NAMES monthNames.split(,);window.DAYS days.split(,);window.WEEK_START_WITH firstDayOfTheWeek;window.EMBED_TAB_TYPE tab;window.EMBED_TRIGGER_BOOKING triggerbooking;window.ONE_PASSENGER onePassenger;window.MANY_PASSENGERS manyPassengers;window.PAGE_TYPE pageType;window.DATE_TS 1 * new Date();const breakpoints { sm: 640, md: 768, lg: 1024, xl: 1280, xxl: 1536, tablet: 768, desktop: 1024,}; // min-widthsconst autocompleteEndpoint convertInlineVariableFunction(env.AUTOCOMPLETE_API_URL, { locale: config.locale, lat: geoLocation.lat, lng: geoLocation.lng,});window.addEventListener(resize, () > { window.virail.isPhone window.innerWidth breakpoints.tablet;});window.virail Object.assign(window.virail || {}, { ts: DATE_TS, i18n: i18n, abtest: config.abtest, timezone: config.timezone, searchCookies: recent_searches_v1, breakpoints: breakpoints, //searchCookiesExpiration: 30 * 24 * 3600000, // @TODO - remove tld: config.tld, locale: config.locale, stdLocale: config.stdLocale, searchLocale: config.locale, currency: currency, currencyList: currencyList, //{{ view.components.currencies | json_encode(constant(JSON_PRETTY_PRINT)) | raw }}, autocomplete: autocompleteEndpoint, envs: envs, environment: environment, endpoints: { autocompleteApiUrl: autocompleteEndpoint, weatherApiUrl: env.WEATHER_API_URL, flyerApiUrl: env.FLYER_API_URL, personalAreaUrl: env.PERSONAL_AREA_ENDPOINT, searchApiUrl: env.SEARCH_API_URL }, firstDayOfWeek: firstDayOfTheWeek, tag: null, currentSearchDate: (() > { const today new Date(); const todayDateObject new Date( today.getFullYear(), today.getMonth(), today.getDate(), 0, 0, 0 ); todayDateObject.setDate(todayDateObject.getDate()); return todayDateObject; })(), currentReturnSearchDate: (() > { const today new Date(); const tomorrow new Date( today.getFullYear(), today.getMonth(), today.getDate(), 0, 0, 0 ); tomorrow.setDate(tomorrow.getDate() + 2); return tomorrow; })(), /* popularDates: { // @TODO - remove today: (() > { const today new Date(); return new Date( today.getFullYear(), today.getMonth(), today.getDate(), 0, 0, 0 ); })(), tomorrow: (() > { const today new Date(); today.setHours(0, 0, 0, 0); today.setDate(today.getDate() + 1); return new Date(today); })(), }, */ toggleCMPVisibility: function (mode) { let cmpboxrecall document.querySelector(#cmpboxrecall); let attr document.createAttribute(style); if (mode show && cmpboxrecall ! null) { attr.value z-index:7999999; cmpboxrecall.setAttributeNode(attr); } else if (mode hide && cmpboxrecall ! null) { attr.value z-index:0; cmpboxrecall.setAttributeNode(attr); } }, minPriceBoxes: null, isPhone: window.virail.isPhone, settings: { activatedProvidersToShowTransportId: obb,bahn,blablacar, },});// small hack for pluralization// Normal usecase: `_(string , { var: 1 })`// Plurlaization usecase: `_(one thing, 3, things)`window.virail.i18n Object.assign(window.virail.i18n || {}, { _: convertInlineVariableFunction});performance.mark(window-virail-ready);window.loadAsyncScripts function (src, done, id, type text/javascript, tagObject {}) { const tag document.createElement(script); Object.keys(tagObject).forEach(key > { tag.setAttribute(key, tagObjectkey); }) tag.async false; tag.src src; tag.id id; tag.type type; tag.onload function () { done && done() } tag.onerror function () { done && done() } document.head.appendChild(tag);}})();/script> script src/kbs/kbs.js?v0.3.49 data-server-url/kbs/collect>/script> script>(function(){const kbsData {pageType:Index,env:production,tld:es,locale:es,v:0.3.49}; if(window.virail.abtest && Object.keys(window.virail.abtest).length){ kbsData.abtest window.virail.abtest; } kbs.serverSideData kbsData; window.addEventListener(events-to-kbs, event > { const name event.detail.name; const data event.detail.data || {}; const options event.detail.options || {}; if (!!options.sendBeacon) { {/* A problem with sending analytics is that a site often wants to send analytics when the user has finished with a page: for example, when the user navigates to another page (case interlinking-routes__click-link). In this situation the browser may be about to unload the page, and in that case the browser may choose not to send asynchronous XMLHttpRequest requests. In this case, theres no available callback */} kbs.track(name, data, { sendBeacon: true }); return; } kbs.track(name, data).then(response > { if(response.response.data.status ! success){ console.error(Kibanalytics custom event failed: , response); } return response; }).catch(error > { console.error(Kibanalytics custom event failed: , error); return undefined; }).then(response > { const changes new CustomEvent(callback-kbs, {detail: response}); window.dispatchEvent(changes); }); });})();/script> script>(function(){const env {FLYER_API_URL:https://flyer.virail.app,VERSION:0.3.49};document.addEventListener(readystatechange, event > { if (event.target.readyState complete) { window.loadAsyncScripts(`${env.FLYER_API_URL}/dist/flyer.min.js?v${env.VERSION}`, null, flyer-client-loaded, text/javascript, { data-server-url: env.FLYER_API_URL }) }});})();/script> script typetext/javascript>(function(){const clarityId lj3efhjjov; window.addEventListener(consent-manager, event > { if((event?.detail?.level ?? ).includes(analytics)){ (function(c,l,a,r,i,t,y){ caca||function(){(ca.qca.q||).push(arguments)}; tl.createElement(r);t.async1;t.srchttps://www.clarity.ms/tag/+i; yl.getElementsByTagName(r)0;y.parentNode.insertBefore(t,y); })(window, document, clarity, script, clarityId); } }, { once: true }); // once true here is not really needed as this event is emitted once per page but added it anyway })();/script>link relstylesheet href/_astro/_slug_.957621df.css />link relstylesheet href/_astro/_slug_.76bbf107.css />style>/style>script typemodule src/_astro/hoisted.2d937ed1.js>/script>script typemodule src/_astro/page.eb952472.js>/script>/head> body classfont-sans> div idmodals>/div> div idsidebar-mobile>/div> noscript>iframe height0 width0 styledisplay:none;visibility:hidden classcmplazyload srcabout:blank data-cmp-vendors905 data-cmp-srchttps://www.googletagmanager.com/ns.html?idGTM-M76FPCK>/iframe>/noscript> main classbg-white> section idmain-header-wrapper classtext-gray-700 body-font relative flex flex-col data-test-idmain-blocks--header--main> div classw-full z-20 data-test-idnavbar-wrapper> header classmx-auto virail-container text-gray-700 body-font flex flex-row justify-between> div classpy-3 flex flex-1 items-center justify-start> a href/> img src/assets/img/logo.png altLogo classh-8 width100 height100> /a> /div> div classhidden md:flex items-center justify-center mr-2> div classflex justify-between items-center rounded-md text-white> div x-datadropdown() x-bindwrapper x-cloak classw-full flex-auto justify-end aria-labeldropdown> div classw-full isolate> div classflex relative inline-block text-left ring-0 rounded-md> button x-bindtrigger typebutton aria-haspopuptrue iddropdown x-bind:classopen ? shadow-md : classflex flex-row items-center gap-1 hover:bg-virail-green-500/0.1 rounded-md leading-7> span classgrow tracking-tighter font-light text-base whitespace-nowrap text-left> div classflex items-center pl-2 min-w-full> span classflag flag-es>/span> span classml-1 block text-md font-medium md:tracking-normal leading-none self-end>virail España/span> /div> /span> span classmr-2> svg width20 height20 xmlnshttp://www.w3.org/2000/svg viewBox0 0 20 20 fillcurrentColor :class{rotate-180: open} classtransform duration-200 transition rotate-0> path fill-ruleevenodd dM5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z clip-ruleevenodd>/path> /svg> /span> /button> div x-bindmenu x-transition:entertransition ease-out origin-top duration-200 x-transition:enter-startopacity-0 transform scale-90 x-transition:enter-endopacity-100 transform scale-100 x-transition:leavetransition origin-top ease-in duration-100 x-transition:leave-startopacity-100 transform scale-100 x-transition:leave-endopacity-0 transform scale-90 classw-fit absolute flex bg-white z-20 shadow-md rounded-md origin-top top-full> ul tabindex-1 rolelistbox aria-labelledbylistbox-label aria-activedescendantlistbox-item-3 classmax-h-40 justify-start overflow-auto w-full transition-colors tracking-tighter font-light text-base my-1 x-cloak> li aria-labelredirect-to-at roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.at/}) href#> div classflex items-center> span class"flag flag-at>/span> span classml-1 block text-sm truncate tracking-tighter>virail Österreich/span> /div> /a> /li>li aria-labelredirect-to-be roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.be/de}) href#> div classflex items-center> span class"flag flag-be>/span> span classml-1 block text-sm truncate tracking-tighter>virail Belgium (DE)/span> /div> /a> /li>li aria-labelredirect-to-be roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.be/fr}) href#> div classflex items-center> span class"flag flag-be>/span> span classml-1 block text-sm truncate tracking-tighter>virail Belgium (FR)/span> /div> /a> /li>li aria-labelredirect-to-be roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.be/}) href#> div classflex items-center> span class"flag flag-be>/span> span classml-1 block text-sm truncate tracking-tighter>virail Belgium (NL)/span> /div> /a> /li>li aria-labelredirect-to-bg roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.bg/}) href#> div classflex items-center> span class"flag flag-bg>/span> span classml-1 block text-sm truncate tracking-tighter>virail България/span> /div> /a> /li>li aria-labelredirect-to-cat roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.cat/}) href#> div classflex items-center> span class"flag flag-cat>/span> span classml-1 block text-sm truncate tracking-tighter>virail en Català/span> /div> /a> /li>li aria-labelredirect-to-de roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.de/}) href#> div classflex items-center> span class"flag flag-de>/span> span classml-1 block text-sm truncate tracking-tighter>virail Deutschland/span> /div> /a> /li>li aria-labelredirect-to-es roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.es/}) href#> div classflex items-center> span class"flag flag-es>/span> span classml-1 block text-sm truncate tracking-tighter>virail España/span> /div> /a> /li>li aria-labelredirect-to-fr roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.fr/}) href#> div classflex items-center> span class"flag flag-fr>/span> span classml-1 block text-sm truncate tracking-tighter>virail France/span> /div> /a> /li>li aria-labelredirect-to-hu roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.hu/}) href#> div classflex items-center> span class"flag flag-hu>/span> span classml-1 block text-sm truncate tracking-tighter>virail Magyarország/span> /div> /a> /li>li aria-labelredirect-to-in roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.in/}) href#> div classflex items-center> span class"flag flag-in>/span> span classml-1 block text-sm truncate tracking-tighter>virail India (HI)/span> /div> /a> /li>li aria-labelredirect-to-in roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.in/en}) href#> div classflex items-center> span class"flag flag-in>/span> span classml-1 block text-sm truncate tracking-tighter>virail India (EN)/span> /div> /a> /li>li aria-labelredirect-to-it roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.it/}) href#> div classflex items-center> span class"flag flag-it>/span> span classml-1 block text-sm truncate tracking-tighter>virail Italia/span> /div> /a> /li>li aria-labelredirect-to-pl roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.pl/}) href#> div classflex items-center> span class"flag flag-pl>/span> span classml-1 block text-sm truncate tracking-tighter>virail Polsce/span> /div> /a> /li>li aria-labelredirect-to-nl roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.nl/}) href#> div classflex items-center> span class"flag flag-nl>/span> span classml-1 block text-sm truncate tracking-tighter>virail Nederland/span> /div> /a> /li>li aria-labelredirect-to-ro roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.ro/}) href#> div classflex items-center> span class"flag flag-ro>/span> span classml-1 block text-sm truncate tracking-tighter>virail Romania/span> /div> /a> /li>li aria-labelredirect-to-ru roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.ru/}) href#> div classflex items-center> span class"flag flag-ru>/span> span classml-1 block text-sm truncate tracking-tighter>Вираил Россия/span> /div> /a> /li>li aria-labelredirect-to-gb roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.co.uk/}) href#> div classflex items-center> span class"flag flag-gb>/span> span classml-1 block text-sm truncate tracking-tighter>virail United Kingdom/span> /div> /a> /li>li aria-labelredirect-to-us roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.com/}) href#> div classflex items-center> span class"flag flag-us>/span> span classml-1 block text-sm truncate tracking-tighter>virail USA/span> /div> /a> /li>li aria-labelredirect-to-tr roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.com.tr/}) href#> div classflex items-center> span class"flag flag-tr>/span> span classml-1 block text-sm truncate tracking-tighter>virail Türkiye/span> /div> /a> /li>li aria-labelredirect-to-br roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.com.br/}) href#> div classflex items-center> span class"flag flag-br>/span> span classml-1 block text-sm truncate tracking-tighter>virail Brasil/span> /div> /a> /li>li aria-labelredirect-to-pt roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.pt/}) href#> div classflex items-center> span class"flag flag-pt>/span> span classml-1 block text-sm truncate tracking-tighter>virail Portugal/span> /div> /a> /li>li aria-labelredirect-to-ar roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.com.ar/}) href#> div classflex items-center> span class"flag flag-ar>/span> span classml-1 block text-sm truncate tracking-tighter>virail Argentina/span> /div> /a> /li>li aria-labelredirect-to-ch roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.ch/}) href#> div classflex items-center> span class"flag flag-ch>/span> span classml-1 block text-sm truncate tracking-tighter>virail Schweiz (DE)/span> /div> /a> /li>li aria-labelredirect-to-ch roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.ch/it}) href#> div classflex items-center> span class"flag flag-ch>/span> span classml-1 block text-sm truncate tracking-tighter>virail Schweiz (IT)/span> /div> /a> /li>li aria-labelredirect-to-ch roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.ch/fr}) href#> div classflex items-center> span class"flag flag-ch>/span> span classml-1 block text-sm truncate tracking-tighter>virail Schweiz (FR)/span> /div> /a> /li>li aria-labelredirect-to-cn roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.cn/}) href#> div classflex items-center> span class"flag flag-cn>/span> span classml-1 block text-sm truncate tracking-tighter>virail 中国/span> /div> /a> /li>li aria-labelredirect-to-ca roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.ca/}) href#> div classflex items-center> span class"flag flag-ca>/span> span classml-1 block text-sm truncate tracking-tighter>virail Canada (EN)/span> /div> /a> /li>li aria-labelredirect-to-ca roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.ca/fr}) href#> div classflex items-center> span class"flag flag-ca>/span> span classml-1 block text-sm truncate tracking-tighter>virail Canada (FR)/span> /div> /a> /li>li aria-labelredirect-to-th roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.co.th/}) href#> div classflex items-center> span class"flag flag-th>/span> span classml-1 block text-sm truncate tracking-tighter>virail ประเทศไทย/span> /div> /a> /li>li aria-labelredirect-to-vn roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.vn/}) href#> div classflex items-center> span class"flag flag-vn>/span> span classml-1 block text-sm truncate tracking-tighter>virail Việt Nam/span> /div> /a> /li>li aria-labelredirect-to-ua roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.com.ua/}) href#> div classflex items-center> span class"flag flag-ua>/span> span classml-1 block text-sm truncate tracking-tighter>virail України (UA)/span> /div> /a> /li>li aria-labelredirect-to-ua roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.com.ua/ru}) href#> div classflex items-center> span class"flag flag-ua>/span> span classml-1 block text-sm truncate tracking-tighter>virail України (RU)/span> /div> /a> /li>li aria-labelredirect-to-jp roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.jp/}) href#> div classflex items-center> span class"flag flag-jp>/span> span classml-1 block text-sm truncate tracking-tighter>virail ヴィレイル・日本/span> /div> /a> /li>li aria-labelredirect-to-ie roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.ie/}) href#> div classflex items-center> span class"flag flag-ie>/span> span classml-1 block text-sm truncate tracking-tighter>virail Ireland/span> /div> /a> /li>li aria-labelredirect-to-dk roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.dk/}) href#> div classflex items-center> span class"flag flag-dk>/span> span classml-1 block text-sm truncate tracking-tighter>virail Danmark/span> /div> /a> /li>li aria-labelredirect-to-hr roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.com.hr/}) href#> div classflex items-center> span class"flag flag-hr>/span> span classml-1 block text-sm truncate tracking-tighter>virail Hrvatska/span> /div> /a> /li>li aria-labelredirect-to-cz roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.cz/}) href#> div classflex items-center> span class"flag flag-cz>/span> span classml-1 block text-sm truncate tracking-tighter>virail Česká republika/span> /div> /a> /li>li aria-labelredirect-to-lu roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.lu/}) href#> div classflex items-center> span class"flag flag-lu>/span> span classml-1 block text-sm truncate tracking-tighter>virail Luxembourg (FR)/span> /div> /a> /li>li aria-labelredirect-to-lu roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.lu/de}) href#> div classflex items-center> span class"flag flag-lu>/span> span classml-1 block text-sm truncate tracking-tighter>virail Luxembourg (DE)/span> /div> /a> /li>li aria-labelredirect-to-gr roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.gr/}) href#> div classflex items-center> span class"flag flag-gr>/span> span classml-1 block text-sm truncate tracking-tighter>virail Ελλάδα/span> /div> /a> /li>li aria-labelredirect-to-sg roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.sg/}) href#> div classflex items-center> span class"flag flag-sg>/span> span classml-1 block text-sm truncate tracking-tighter>virail Singapore/span> /div> /a> /li>li aria-labelredirect-to-co roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.co/}) href#> div classflex items-center> span class"flag flag-co>/span> span classml-1 block text-sm truncate tracking-tighter>virail Colombia/span> /div> /a> /li>li aria-labelredirect-to-au roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.com.au/}) href#> div classflex items-center> span class"flag flag-au>/span> span classml-1 block text-sm truncate tracking-tighter>virail Australia/span> /div> /a> /li>li aria-labelredirect-to-mx roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.com.mx/}) href#> div classflex items-center> span class"flag flag-mx>/span> span classml-1 block text-sm truncate tracking-tighter>virail Mexico/span> /div> /a> /li>li aria-labelredirect-to-cl roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.cl/}) href#> div classflex items-center> span class"flag flag-cl>/span> span classml-1 block text-sm truncate tracking-tighter>virail Chile/span> /div> /a> /li>li aria-labelredirect-to-nz roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.co.nz/}) href#> div classflex items-center> span class"flag flag-nz>/span> span classml-1 block text-sm truncate tracking-tighter>virail New Zealand/span> /div> /a> /li>li aria-labelredirect-to-my roleoption classcursor-default select-none relative py-2 px-3 text-dove-gray focus:outline-none hover:bg-gray-200> a @click.preventurlRedirect({url: https://www.virail.my/}) href#> div classflex items-center> span class"flag flag-my>/span> span classml-1 block text-sm truncate tracking-tighter>virail Malaysia/span> /div> /a> /li> /ul> /div> /div> /div> /div> script typetext/javascript> window.dropdown function () { return { open: false, wrapper: { @keydown.window.escape() { this.open false }, @click.away() { this.open false } }, trigger: { @click() { this.open ! this.open }, x-bind:aria-expanded() { return this.open } }, menu: { x-show() { return this.open }, @click.away() { this.open false } } } }/script> /div> /div> a href/hc classhidden md:flex items-center justify-center> div classflex justify-between items-center text-white> svg width24 height24 viewBox0 0 24 24 fillnone xmlnshttp://www.w3.org/2000/svg> mask idmask0_8_249 stylemask-type:alpha maskUnitsuserSpaceOnUse x0 y0 width24 height24> rect width24 height24 fillcurrentColor>/rect> /mask> g maskurl(#mask0_8_249)> path dM12 18C12.35 18 12.6458 17.8792 12.8875 17.6375C13.1292 17.3958 13.25 17.1 13.25 16.75C13.25 16.4 13.1292 16.1042 12.8875 15.8625C12.6458 15.6208 12.35 15.5 12 15.5C11.65 15.5 11.3542 15.6208 11.1125 15.8625C10.8708 16.1042 10.75 16.4 10.75 16.75C10.75 17.1 10.8708 17.3958 11.1125 17.6375C11.3542 17.8792 11.65 18 12 18ZM15.6 8.95C15.6 8.05 15.2958 7.33333 14.6875 6.8C14.0792 6.26667 13.275 6 12.275 6C11.525 6 10.8625 6.15417 10.2875 6.4625C9.7125 6.77083 9.25833 7.21667 8.925 7.8C8.80833 7.98333 8.80417 8.18333 8.9125 8.4C9.02083 8.61667 9.19167 8.775 9.425 8.875C9.625 8.95833 9.83333 8.9625 10.05 8.8875C10.2667 8.8125 10.45 8.675 10.6 8.475C10.7833 8.225 11.0125 8.03333 11.2875 7.9C11.5625 7.76667 11.8583 7.7 12.175 7.7C12.6417 7.7 13.0208 7.825 13.3125 8.075C13.6042 8.325 13.75 8.64167 13.75 9.025C13.75 9.325 13.65 9.64167 13.45 9.975C13.25 10.3083 12.95 10.6417 12.55 10.975C12.1167 11.3583 11.7917 11.7167 11.575 12.05C11.3583 12.3833 11.2167 12.775 11.15 13.225C11.1167 13.4583 11.1875 13.6708 11.3625 13.8625C11.5375 14.0542 11.7583 14.15 12.025 14.15C12.2583 14.15 12.4708 14.0708 12.6625 13.9125C12.8542 13.7542 12.975 13.5417 13.025 13.275C13.075 13.0083 13.1667 12.7708 13.3 12.5625C13.4333 12.3542 13.6667 12.0833 14 11.75C14.6333 11.1167 15.0583 10.6083 15.275 10.225C15.4917 9.84167 15.6 9.41667 15.6 8.95ZM5 21C4.45 21 3.97917 20.8042 3.5875 20.4125C3.19583 20.0208 3 19.55 3 19V5C3 4.45 3.19583 3.97917 3.5875 3.5875C3.97917 3.19583 4.45 3 5 3H19C19.55 3 20.0208 3.19583 20.4125 3.5875C20.8042 3.97917 21 4.45 21 5V19C21 19.55 20.8042 20.0208 20.4125 20.4125C20.0208 20.8042 19.55 21 19 21H5Z fillcurrentColor>/path> /g> /svg> p classml-1 font-medium> Centro de ayuda /p> /div> /a> div classflex> script typetext/javascript>(function(){const i18n {pa:{sidebar:{newsletterSettings:Configuración del boletín,profile:Perfil,recentSearches:Búsquedas recientes,helpAndSupport:Ayuda y soporte,priceTracker:Rastreador de precios},deals:{comingSoon:Pronto vendrán los tratos.},input:{genderOptions:{female:Femenina,male:Masculino,other:otro,preferNotSay:Prefiero no decirlo},firstName:Nombre de pila,currency:Divisa,phoneNumber:Número de teléfono,emailAddress:Dirección de correo electrónico,defaultLanguage:Idioma predeterminado,country:País,gender:Género,lastName:Apellido},profile:{languageAndCurrency:Idioma y divisas,deleteThisAccount:Eliminar esta cuenta,deleteAccountDescription:Una vez que eliminas tu cuenta, no hay vuelta atrás. Escriba su dirección de correo electrónico a continuación para aprobar la eliminación de su cuenta.,personalInformation:Informacion personal},header:{accountManagement:Administración de cuentas,account:Mi cuenta},comingSoon:{description:Actualmente estamos trabajando en nuevas actualizaciones y funciones para nuestro sitio web. ¡Mantente al tanto para más información y ser uno de los primeros en probarlas!,title:Próximamente},newsletterSettings:{options:{productUpdates:{description:Reciba notificaciones cuando actualicemos nuestros productos.,title:Actualizaciones de Producto},biWeeklyInspirational:{title:Inspiración quincenal,description:Recibe notificaciones sobre destinos de viaje inspiradores.},deals:{title:Ofertas,description:Reciba notificaciones sobre nuevas ofertas}}},actions:{deleteAccount:Borrar cuenta},recentSearches:{deleteRecentSearch:{title:Eliminar búsqueda reciente,question:¿Quieres eliminar tu búsqueda?},searchLink:Buscar billete aquí,empty:Tu historial de búsquedas recientes está vacío.},priceTracker:{deletePriceTracker:{title:Eliminar rastreador de precios,question:¿Quieres eliminar tu rastreador de precios?},empty:No se encontró ningún rastreador de precios. ¡Habilite el seguimiento de precios ahora para nunca perderse grandes ofertas de viaje!,anyDate:Cualquier fecha,trackPricesUntil:Seguimiento de precios hasta,hoverDescription:Recibirá notificaciones cuando cambien los precios de los billetes de tren para las fechas elegidas, junto con útiles consejos de viaje. También puede realizar un seguimiento de las fechas y recibir actualizaciones periódicas por correo electrónico cuando los precios son bajos.,mobileDescription:Reciba actualizaciones por correo electrónico cuando cambie el precio de los boletos de tren,unsubscribe:{successful:desuscripción exitosa,description:Se ha dado de baja con éxito de Price Tracker.},modal:{enableText:{specificDates:Recibirá correos electrónicos cuando cambie el precio del tren para {{ departure }} - {{ arrival }} entre {{ trackerStartDate }} - {{ trackerEndDate }},anyDates:Recibirá correos electrónicos cuando cambie el precio del tren para {{ departure }} - {{ arrival }} entre cualquier fecha},disableText:Rastreador de precios deshabilitado para {{ departure }} - {{ arrival }}},mobile:{specific:{description:Reciba actualizaciones por correo electrónico cuando los precios de los boletos de tren cambien para la fecha buscada},any:{description:Obtenga actualizaciones periódicas cuando los precios de los billetes de tren sean bajos para {{ departure }} - {{ arrival }}}},trainPriceTracker:Rastreador de precios de trenes}},main:{allPrices:Todos los precios,selectDate:Seleccione fecha,headerAlertBannerCoronaVirus:Coronavirus (COVID-19),table:{priceFrom:Empezando desde,duration:Duración,connections:Conexiones,stations:Estaciones},deals:Ofertas,today:Hoy,max:Max,headerAlertBanner:{RussiaUkraineWar:{donationText:Ucrania: información y formas de ayudar}},maxPrice:Precio maximo,grams:{todayUrl:hoy,tomorrow:Mañana,destination:Destino,departure:Salida,weekdays:Domingo, Lunes, Martes, Miércoles, Jueves, Viernes, Sábado,readableFormat:l j F Y,months:Enero, Febrero, Marzo, Abril, Mayo, Junio, Julio, Agosto, Septiembre, Octubre, Noviembre, Diciembre,tomorrowUrl:manana,from:De,today:Hoy},selectAll:Seleccionar todo,loading:Cargando,monthly:Mensual,tomorrow:Mañana,getDeal:Obtener la oferta,close:Cerrar,viewDeal:Ver oferta,singleChange:{{ n }} transbordo/s,readmore:{show:Mostrar descripción completa,hide:Ocultar descripción completa,body:Leer más},multiChange:{{ n }} transbordos,homepage:Página,minPrice:Precio mínimo,go:Buscar,headerAlertBannerCoronaVirusInformed:Manténgase informado sobre su viaje,direct:directo,countrySubtitle:Horarios de trenes {{ country }},duration:{label:Duración,format:{{ hours }} h {{ mins }} min},side_links:{bus:{route:{anchor:Autobuses {{ from }} - {{ to }},a_title:Horarios de autobuses {{ from }} - {{ to }}}},plane:{route:{anchor:Vuelo {{ from }} - {{ to }},a_title:Horarios de vuelos {{ from }} {{ to }}}},train:{route:{anchor:Trenes {{ from }} - {{ to }},a_title:Horarios de trenes {{ from }} - {{ to }}}}},takeMeHome:Llévame a la página de inicio},vam:{receiveExclusiveDeals:Deseo recibir ofertas exclusivas y actualizaciones de productos enviadas directamente a mi bandeja de entrada.,signIn:Iniciar sesión,signOut:Cerrar sesión,signInLong:Inicia sesión o crea una cuenta},mobileMenu:{recentSearchesLabel:Tus búsquedas recientes,newSearchLabel:Nueva búsqueda,hotels:Hoteles},search:{passengersLabel:Pasajeros,pagination:{nextButton:Next,previousButton:Previous},sort:{options:{duration:Duración,departureV2:Hora de salida,price:Precio,departure:Partida,durationV2:Más rápido,co2V2:El más ecológico,recommended:Recomendado,arrival:Llegada,priceV2:Más barata,recommendedV2:Barato y rápido},label:Ordenar por},connections:{outwardSelectionButton:Seleccionar ida,durationLabel:Duración,labels:{fastest:Más rápido,from:desde,best:Indicado,cheapest:Más barato},detailsLink:Comprobar detalles,hideDetails:Ocultar detalles,stopAndWaitFor:Deténgase y espere {{difference}},clickoutButton:Ver oferta,cancelRoundtripButton:Cancelar,changes:{many:{{ n }} transbordos,direct:directo,one:{{ n }} transbordo/s},waitingTimeLabel:Tiempo de espera,roundtripSelectionButton:Seleccionar vuelta,showDetails:Comprobar detalles,noResults:Sin resultados,resultCountLabel:{{ count }} resultados},dateReturnlabel:Fecha de vuelta,filters:{tabs:{all:Todos los medios de transporte,mixed:Combinado,car:Compartir Coche,bus:Autobús,plane:Vuelo,rentalcar:Coche de alquiler,train:Tren},titles:{departures:Estación de salida,arrivals:Estación/aeropuerto de llegada,departureTime:Salida,price:Precio,changes:Cambios,arrivalTime:Llegada,duration:Duración,companies:Compañías,facilities:Instalaciones},intervals:{afternoon:Mediodía,night:Noche,evening:Tarde,morning:Mañana,earlyMorning:Temprano en la mañana},dateStrings:{sameMonthDateInterval:{{ first }}, {{ last }} {{ month }},dateAndMonth:D MMM,timeWithDate:D MMM, LT,differentMonthDateInterval:{{ first }}, {{ last }}},label:Filtrar,resetFiltersLabel:Restablecer filtros,noFilteredResultMessage:No hay resultados con estos filtros,applyButtonLabel:Aplicar filtros,mobile:{title:Todos los filtros,resetBtn:Reiniciar},facilities:{wifi:Wifi,accessibility:Accesibilidad,bicycle:Bicicleta,food_and_drink:Comida y bebida,luggage:Equipaje,power_sockets:Tomas de corriente,quiet_zone:Coche en Silencio,sleeper_couchette:Sofá cama,air_con:Aire acondicionado},noResultMessage:No pudimos encontrar lo que estás buscando. Refinar su búsqueda con diferentes términos podría ser la solución. ¡Démosle otra oportunidad!},autocomplete:{lastSearchResult:Su último resultado de búsqueda,allStations:Todas las estaciones,searchResults:Resultados de la búsqueda,typeMore:Escriba más para obtener resultados más relevantes.,suggestionHeader:Escriba más para obtener mejores resultados},bestDealsLabel:Mejores ofertas para,form:{addReturn:Regreso,modes:{oneWayLabel:Ida,roundTripLabel:Ida y vuelta},cancelButton:Cancelar,searchAccomodationsBooking:Busca también alojamiento con Booking.com,departurePlaceLabel:Selecciona una salida,departureDateLabel:Fecha,doneButton:Hecho,arrivalPlaceLabel:Selecciona un destino,passengers:{label:Pasajeros,one:{{ n }} Pasajero,many:{{ n }} Pasajeros},searchButton:Buscar,arrivalDateLabel:Fecha de vuelta,submit:Entregar,remove:Remover,exploreButton:Explorar,departurePlacePlaceholder:Yéndose de...,destinationPlacePlaceholder:Ir a...},ads:{premiumPlacement:{trainline:{buttonLabel:Plusxxx,body:Trouvez des billets de train pas chers pour Lyon,price:A partir de,category:Offre spéciale},sncf:{bookNow:Reservar,from:A partir de,body:span>{{from}}/span> – span>{{to}}/span> en tren con span>OUI.sncf/span>},movacar:{price:Autovermietung für €1},labels:{from:A partir de}}},leisureLabel:ocio,selectLabel:Seleccionar,passengerLabel:Pasajero,selection:{modes:{outward:Ida,roundtrip:Vuelta},continueButton:Continuar,title:Detalles del viaje,readBefore:Leer antes,redirectText:Será redirigido a nuestro socio {{ redirectProvider }}.},destinationLabel:Selecciona un destino,pickUpLocationLabel:Lugar de recogida,departureLabel:Selecciona una salida,roundTripLabel:Ida y vuelta,summary:{redirect:{landing:{search:Lo redireccionaremos a la página de búsqueda de {{ provider }} con sus condiciones de búsqueda ya rellenadas. Encontrará la misma oferta allí, en la que debe hacer clic para comenzar la compra.,default:Lo redireccionaremos al sitio web de {{ provider }} para comenzar la compra.,booking:Lo redireccionaremos a la página de reserva de {{ provider }} de la oferta seleccionada para finalizar su compra.},type:{direct:Va a reservar directamente con {{ provider }}, sin utilizar una plataforma de reserva de terceros.br />br />{{ landingText }}br />br />Siempre mostramos el precio completo, incluyendo una estimación de todos los impuestos y cargos obligatorios de acuerdo con lo que nos informa nuestro socio. A veces los precios se actualizan: b>verifique cuidadosamente el precio final/b> en el sitio web del socio, así como todos los detalles y condiciones de los billetes (especialmente cuando viaja con niños).,default:Va a reservar con {{ provider }}.br />br />{{ landingText }}br />br />Siempre mostramos el precio completo, incluyendo una estimación de todos los impuestos y cargos obligatorios de acuerdo con lo que nos informa nuestro socio. A veces los precios se actualizan: b>verifique cuidadosamente el precio final/b> en el sitio web del socio, así como todos los detalles y condiciones de los billetes (especialmente cuando viaja con niños).,aggregator:Va a reservar con {{ provider }}, que es el socio oficial de reservas de {{ provider }}. Lo redireccionaremos al sitio web de {{ provider }}.br />br />{{ landingText }}br />br />Siempre mostramos el precio completo, incluyendo una estimación de todos los impuestos y cargos obligatorios de acuerdo con lo que nos informa nuestro socio. A veces los precios se actualizan: b>verifique cuidadosamente el precio final/b> en el sitio web del socio, así como todos los detalles y condiciones de los billetes (especialmente cuando viaja con niños).}}},datetime:{datepicker:{dateFormat:DD/MM/YYYY,lowPricesText:El precio es más bajo de lo habitual.}},onewayLabel:Ida,bookingInfo:{roomsFromPrice:Habitaciones desde {{price}} con {{bookingLogo}},findRoom:encontrar habitación,stayIn:Quédate en {{destination}}},pickUpDateLabel:Fecha de recogida,reasonLabel:Propósito,searchLabel:Buscar,tripLabel:Viaje,dateLabel:Fecha,businessLabel:negocios,bookingLabel:Busca también alojamiento con Booking.com,resultHeadText:{outward:Seleccionar ida,return:Seleccionar retorno},progress:{label:Comparamos múltiples sitios para asegurarnos de conseguir la mejor oferta para ti.},rentalcars:{heading:¿Busca un automóvil en {{ origin }}?},marketplace:{showMoreDeals:Mostrar más ofertas,showDealsWithCountPlural:{{n}} opciones desde,showDealsWithCountSingular:{{n}} oferta,bookVia:vía {{ seller }}},summaryPage:{redirectText:Serás redirigido a {{ redirectProvider }}.},makeItRoundtrip:Ahorre dinero reservando su viaje de regreso ahora.}};const currencyList {AUD:{currency:AUD,symbol:$},ARS:{currency:ARS,symbol:$},BGN:{currency:BGN,symbol:лв},BRL:{currency:BRL,symbol:R$},CAD:{currency:CAD,symbol:$},CHF:{currency:CHF,symbol:Fr},CLP:{currency:CLP,symbol:$},CNY:{currency:CNY,symbol:¥},COP:{currency:COP,symbol:COL$},CZK:{currency:CZK,symbol:Kč},DKK:{currency:DKK,symbol:kr},EUR:{currency:EUR,symbol:€},GBP:{currency:GBP,symbol:£},HUF:{currency:HUF,symbol:Ft},INR:{currency:INR,symbol:₹},JPY:{currency:JPY,symbol:¥},NZD:{currency:NZD,symbol:$},MXN:{currency:MXN,symbol:$},MYR:{currency:MYR,symbol:RM},PLN:{currency:PLN,symbol:zł},RON:{currency:RON,symbol:lei},RUB:{currency:RUB,symbol:Br},THB:{currency:THB,symbol:฿},TRY:{currency:TRY,symbol:₺},UAH:{currency:UAH,symbol:₴},USD:{currency:USD,symbol:$},VND:{currency:VND,symbol:₫},SGD:{currency:SGD,symbol:S$}};const currency EUR; window.virail Object.assign(window.virail || {}, { i18n: Object.assign(window.virail.i18n || {}, i18n), currencyList: currencyList, currency: currency })})();/script> script>(function(){const src /v4/sidebar-mobile.7cdda63c.js;const type text/javascript;document.addEventListener(readystatechange, event > { if (event.target.readyState complete) { window.loadAsyncScripts(src, null, sidebar-mobile-module, type) }})})();/script> div classml-3 relative flex items-center justify-center aria-labeluser-profile-dropdown x-dataprofile x-showshowProfileComponent @click.outsideopen false; x-cloak> div x-showopen x-cloak> ul classorigin-top-right absolute right-0 mt-6 w-32 rounded-md shadow-lg py-1 bg-white ring-1 ring-black ring-opacity-5 focus:outline-none z-30> li classhover:bg-gray-200> a href/user/personal-area classblock px-4 py-2 text-sm text-gray-700>Mi cuenta/a> /li> li classhover:bg-gray-200> span @clicklogout($dispatch) classblock px-4 py-2 text-sm text-gray-700>Cerrar sesión/span> /li> /ul> /div> template x-if!!user> div> div @clicktoggle($dispatch) classhidden md:block cursor-pointer> div classbg-white transition hover:bg-virail-green-200 p-0.5 flex text-sm rounded-full> template x-ifuser.picture> img classh-8 w-8 rounded-full shadow-md x-bind:srcuser.picture altProfile Picture> /template> template x-if!user.picture> img classh-8 w-8 rounded-full shadow-md src/assets/img/default-profile.png altProfile Picture> /template> /div> /div> div @clickopenMobileMenu($dispatch) classmd:hidden cursor-pointer> div classbg-white transition hover:bg-virail-green-200 p-0.5 flex text-sm rounded-full> template x-ifuser.picture> img classh-8 w-8 rounded-full shadow-md x-bind:srcuser.picture altProfile Picture> /template> template x-if!user.picture> img classh-8 w-8 rounded-full shadow-md src/assets/img/default-profile.png altProfile Picture> /template> /div> /div> /div> /template> template x-if!user> button @click$dispatch(open-login-modal) classflex flex-row items-center gap-1 hover:bg-virail-green-500/0.1 rounded-md leading-7 pl-2 pr-1 text-white> svg width24 height24 viewBox0 0 24 24 fillnone xmlnshttp://www.w3.org/2000/svg> mask idmask0_8_254 stylemask-type:alpha maskUnitsuserSpaceOnUse x0 y0 width24 height24> rect width24 height24 fillcurrentColor>/rect> /mask> g maskurl(#mask0_8_254)> path dM12 12C10.9 12 9.95833 11.6083 9.175 10.825C8.39167 10.0417 8 9.1 8 8C8 6.9 8.39167 5.95833 9.175 5.175C9.95833 4.39167 10.9 4 12 4C13.1 4 14.0417 4.39167 14.825 5.175C15.6083 5.95833 16 6.9 16 8C16 9.1 15.6083 10.0417 14.825 10.825C14.0417 11.6083 13.1 12 12 12ZM4 18V17.2C4 16.6333 4.14583 16.1125 4.4375 15.6375C4.72917 15.1625 5.11667 14.8 5.6 14.55C6.63333 14.0333 7.68333 13.6458 8.75 13.3875C9.81667 13.1292 10.9 13 12 13C13.1 13 14.1833 13.1292 15.25 13.3875C16.3167 13.6458 17.3667 14.0333 18.4 14.55C18.8833 14.8 19.2708 15.1625 19.5625 15.6375C19.8542 16.1125 20 16.6333 20 17.2V18C20 18.55 19.8042 19.0208 19.4125 19.4125C19.0208 19.8042 18.55 20 18 20H6C5.45 20 4.97917 19.8042 4.5875 19.4125C4.19583 19.0208 4 18.55 4 18Z fillcurrentColor>/path> /g> /svg> span classblock font-medium>Iniciar sesión/span> /button> /template> /div> /div> div classw-10 block md:hidden flex items-center justify-center ml-2 text-white> button x-data{} x-on:click$dispatch(toggle-mobile-menu) data-test-idmobile-menu-hamburger-button aria-labelToggle Mobile Menu> svg xmlnshttp://www.w3.org/2000/svg classh-8 w-8 mirror md:text-gray-700 text-white fillnone viewBox0 0 24 24 strokecurrentColor> path stroke-linecapround stroke-linejoinround stroke-width2 dM4 6h16M4 12h8m-8 6h16>/path> /svg> /button> /div> /header> /div> div classvirail-container mx-auto no-x-padding flex my-3 md:my-6 lg:mb-5 data-test-idtitle> div classpx-4 z-10 w-full md:w-3/5 md:h-16 lg:w-full lg:h-10> h1 classfont-medium leading-9 text-white md:font-medium md:text-3xl md:leading-10 text-2xl tracking-0.005em text-left>Encuentra el billete más barato para tu viaje/h1> /div> /div> div classinset-y-0 absolute inset-x-0 overflow-hidden z-0> div classw-full object-cover h-325px lg:h-180px stylebackground:linear-gradient(179.61deg, #0099A4 -0.54%, #00757E 101.83%)>/div> /div> div classvirail-container no-x-padding mx-auto flex flex-col-reverse justify-between w-full z-20 lg:z-10 data-test-idcontent-wrapper> script typetext/javascript>(function(){const i18n {search:{passengersLabel:Pasajeros,pagination:{nextButton:Next,previousButton:Previous},sort:{options:{duration:Duración,departureV2:Hora de salida,price:Precio,departure:Partida,durationV2:Más rápido,co2V2:El más ecológico,recommended:Recomendado,arrival:Llegada,priceV2:Más barata,recommendedV2:Barato y rápido},label:Ordenar por},connections:{outwardSelectionButton:Seleccionar ida,durationLabel:Duración,labels:{fastest:Más rápido,from:desde,best:Indicado,cheapest:Más barato},detailsLink:Comprobar detalles,hideDetails:Ocultar detalles,stopAndWaitFor:Deténgase y espere {{difference}},clickoutButton:Ver oferta,cancelRoundtripButton:Cancelar,changes:{many:{{ n }} transbordos,direct:directo,one:{{ n }} transbordo/s},waitingTimeLabel:Tiempo de espera,roundtripSelectionButton:Seleccionar vuelta,showDetails:Comprobar detalles,noResults:Sin resultados,resultCountLabel:{{ count }} resultados},dateReturnlabel:Fecha de vuelta,filters:{tabs:{all:Todos los medios de transporte,mixed:Combinado,car:Compartir Coche,bus:Autobús,plane:Vuelo,rentalcar:Coche de alquiler,train:Tren},titles:{departures:Estación de salida,arrivals:Estación/aeropuerto de llegada,departureTime:Salida,price:Precio,changes:Cambios,arrivalTime:Llegada,duration:Duración,companies:Compañías,facilities:Instalaciones},intervals:{afternoon:Mediodía,night:Noche,evening:Tarde,morning:Mañana,earlyMorning:Temprano en la mañana},dateStrings:{sameMonthDateInterval:{{ first }}, {{ last }} {{ month }},dateAndMonth:D MMM,timeWithDate:D MMM, LT,differentMonthDateInterval:{{ first }}, {{ last }}},label:Filtrar,resetFiltersLabel:Restablecer filtros,noFilteredResultMessage:No hay resultados con estos filtros,applyButtonLabel:Aplicar filtros,mobile:{title:Todos los filtros,resetBtn:Reiniciar},facilities:{wifi:Wifi,accessibility:Accesibilidad,bicycle:Bicicleta,food_and_drink:Comida y bebida,luggage:Equipaje,power_sockets:Tomas de corriente,quiet_zone:Coche en Silencio,sleeper_couchette:Sofá cama,air_con:Aire acondicionado},noResultMessage:No pudimos encontrar lo que estás buscando. Refinar su búsqueda con diferentes términos podría ser la solución. ¡Démosle otra oportunidad!},autocomplete:{lastSearchResult:Su último resultado de búsqueda,allStations:Todas las estaciones,searchResults:Resultados de la búsqueda,typeMore:Escriba más para obtener resultados más relevantes.,suggestionHeader:Escriba más para obtener mejores resultados},bestDealsLabel:Mejores ofertas para,form:{addReturn:Regreso,modes:{oneWayLabel:Ida,roundTripLabel:Ida y vuelta},cancelButton:Cancelar,searchAccomodationsBooking:Busca también alojamiento con Booking.com,departurePlaceLabel:Selecciona una salida,departureDateLabel:Fecha,doneButton:Hecho,arrivalPlaceLabel:Selecciona un destino,passengers:{label:Pasajeros,one:{{ n }} Pasajero,many:{{ n }} Pasajeros},searchButton:Buscar,arrivalDateLabel:Fecha de vuelta,submit:Entregar,remove:Remover,exploreButton:Explorar,departurePlacePlaceholder:Yéndose de...,destinationPlacePlaceholder:Ir a...},ads:{premiumPlacement:{trainline:{buttonLabel:Plusxxx,body:Trouvez des billets de train pas chers pour Lyon,price:A partir de,category:Offre spéciale},sncf:{bookNow:Reservar,from:A partir de,body:span>{{from}}/span> – span>{{to}}/span> en tren con span>OUI.sncf/span>},movacar:{price:Autovermietung für €1},labels:{from:A partir de}}},leisureLabel:ocio,selectLabel:Seleccionar,passengerLabel:Pasajero,selection:{modes:{outward:Ida,roundtrip:Vuelta},continueButton:Continuar,title:Detalles del viaje,readBefore:Leer antes,redirectText:Será redirigido a nuestro socio {{ redirectProvider }}.},destinationLabel:Selecciona un destino,pickUpLocationLabel:Lugar de recogida,departureLabel:Selecciona una salida,roundTripLabel:Ida y vuelta,summary:{redirect:{landing:{search:Lo redireccionaremos a la página de búsqueda de {{ provider }} con sus condiciones de búsqueda ya rellenadas. Encontrará la misma oferta allí, en la que debe hacer clic para comenzar la compra.,default:Lo redireccionaremos al sitio web de {{ provider }} para comenzar la compra.,booking:Lo redireccionaremos a la página de reserva de {{ provider }} de la oferta seleccionada para finalizar su compra.},type:{direct:Va a reservar directamente con {{ provider }}, sin utilizar una plataforma de reserva de terceros.br />br />{{ landingText }}br />br />Siempre mostramos el precio completo, incluyendo una estimación de todos los impuestos y cargos obligatorios de acuerdo con lo que nos informa nuestro socio. A veces los precios se actualizan: b>verifique cuidadosamente el precio final/b> en el sitio web del socio, así como todos los detalles y condiciones de los billetes (especialmente cuando viaja con niños).,default:Va a reservar con {{ provider }}.br />br />{{ landingText }}br />br />Siempre mostramos el precio completo, incluyendo una estimación de todos los impuestos y cargos obligatorios de acuerdo con lo que nos informa nuestro socio. A veces los precios se actualizan: b>verifique cuidadosamente el precio final/b> en el sitio web del socio, así como todos los detalles y condiciones de los billetes (especialmente cuando viaja con niños).,aggregator:Va a reservar con {{ provider }}, que es el socio oficial de reservas de {{ provider }}. Lo redireccionaremos al sitio web de {{ provider }}.br />br />{{ landingText }}br />br />Siempre mostramos el precio completo, incluyendo una estimación de todos los impuestos y cargos obligatorios de acuerdo con lo que nos informa nuestro socio. A veces los precios se actualizan: b>verifique cuidadosamente el precio final/b> en el sitio web del socio, así como todos los detalles y condiciones de los billetes (especialmente cuando viaja con niños).}}},datetime:{datepicker:{dateFormat:DD/MM/YYYY,lowPricesText:El precio es más bajo de lo habitual.}},onewayLabel:Ida,bookingInfo:{roomsFromPrice:Habitaciones desde {{price}} con {{bookingLogo}},findRoom:encontrar habitación,stayIn:Quédate en {{destination}}},pickUpDateLabel:Fecha de recogida,reasonLabel:Propósito,searchLabel:Buscar,tripLabel:Viaje,dateLabel:Fecha,businessLabel:negocios,bookingLabel:Busca también alojamiento con Booking.com,resultHeadText:{outward:Seleccionar ida,return:Seleccionar retorno},progress:{label:Comparamos múltiples sitios para asegurarnos de conseguir la mejor oferta para ti.},rentalcars:{heading:¿Busca un automóvil en {{ origin }}?},marketplace:{showMoreDeals:Mostrar más ofertas,showDealsWithCountPlural:{{n}} opciones desde,showDealsWithCountSingular:{{n}} oferta,bookVia:vía {{ seller }}},summaryPage:{redirectText:Serás redirigido a {{ redirectProvider }}.},makeItRoundtrip:Ahorre dinero reservando su viaje de regreso ahora.},searchForm:{searchButton:Buscar boleto,stayWithBooking:Quédate con Booking.com}}; window.virail Object.assign(window.virail || {}, { i18n: Object.assign(window.virail.i18n || {}, i18n) })})();/script> script typetext/javascript>(function(){const BOOKING_AID 1656823;const MOBILE_LABEL mobpagehome-see-AID-click_brand-virail_device-mob_market-;const DESKTOP_LABEL pagehome-see-AID-click_brand-virail_device-dsk_market-; const generateBookingUrl ( startDate, destinationObject, label, passengerCount 1, isSelectedModeOneWay true, dealType leisure, endDate null ) > { const dtDate new Date(startDate); dtDate.setDate(dtDate.getDate() + 1); const tzoffset (new Date()).getTimezoneOffset() * 60000; const localISOTime (new Date(dtDate - tzoffset)).toISOString().slice(0, -1); // create booking object to be used in query string let booking { aid : BOOKING_AID, label : label, checkin : startDate || , checkout : isSelectedModeOneWay ? localISOTime.split(T)0 : endDate, place_id : 1, place_id_lat : destinationObject ? destinationObject.a.split(,)0 : , place_id_lon : destinationObject ? destinationObject.a.split(,)1 : , postcard : 0, radius : 10, ss : destinationObject ? destinationObject.n : , group_adults : passengerCount, order : popularity } if(dealType business){ bookingsb_travel_purpose business; } var esc encodeURIComponent; var query Object.keys(booking) .map(k > esc(k) + + esc(bookingk)) .join(&); // return only url with query string return https://www.booking.com/searchresults.html? + query; } const openBooking (startDate, destinationObject, passengerCount 1, isSelectedModeOneWay true, dealType leisure, endDate null) > { const destination destinationObject ? destinationObject.n : ; const locale window.virail.locale || us const label window.innerWidth window.virail.breakpoints.desktop ? `${MOBILE_LABEL}-${locale}` : `${DESKTOP_LABEL}-${locale}`; /* // START ~ TRACKING with callback window.kibanaTracker(booking_redirect, { destination : destination, label : label, }, kbsResponse > { const url generateBookingUrl(kbsResponse, startDate, destinationObject, label, passengerCount, isSelectedModeOneWay, dealType, endDate) window.urlRedirect(url); } ); // END ~ TRACKING with callback */ window.kibanaTracker(booking_redirect, { destination : destination, label : label, }); const url generateBookingUrl(startDate, destinationObject, label, passengerCount, isSelectedModeOneWay, dealType, endDate) window.urlRedirect(url); } window.addEventListener(search-triggered-with-button-click, (event) > { const { payload, booking, page, searchUrl } event.detail; if (booking.redirect && page ! srp) { // user allow open SRP in new tab const searchTab window.open(searchUrl, _blank); // open booking page in current tab openBooking(booking.startDate, booking.destinationObject, booking.passengerCount, booking.isSelectedModeOneWay, booking.dealType, booking.endDate); // focus on SRP tab searchTab.focus(); } else { // user not allow open booking on new tab // only show search page window.urlRedirect(searchUrl); } });})();/script> div classpx-4 min-h-336px lg:min-h-106px data-test-idvirail-main-search-form-wrapper> style>astro-island,astro-slot,astro-static-slot{display:contents}/style>script>(()>{var easync t>{await(await t())()};(self.Astro||(self.Astro{})).loade;window.dispatchEvent(new Event(astro:load));})();;(()>{var bObject.defineProperty;var f(c,o,i)>o in c?b(c,o,{enumerable:!0,configurable:!0,writable:!0,value:i}):coi;var l(c,o,i)>(f(c,typeof o!symbol?o+:o,i),i);var p;{let c{0:t>m(t),1:t>i(t),2:t>new RegExp(t),3:t>new Date(t),4:t>new Map(i(t)),5:t>new Set(i(t)),6:t>BigInt(t),7:t>new URL(t),8:t>new Uint8Array(t),9:t>new Uint16Array(t),10:t>new Uint32Array(t)},ot>{lete,rt;return e in c?ce(r):void 0},it>t.map(o),mt>typeof t!object||tnull?t:Object.fromEntries(Object.entries(t).map((e,r)>e,o(r)));customElements.get(astro-island)||customElements.define(astro-island,(pclass extends HTMLElement{constructor(){super(...arguments);l(this,Component);l(this,hydrator);l(this,hydrate,async()>{var d;if(!this.hydrator||!this.isConnected)return;let e(dthis.parentElement)null?void 0:d.closest(astro-islandssr);if(e){e.addEventListener(astro:hydrate,this.hydrate,{once:!0});return}let rthis.querySelectorAll(astro-slot),a{},hthis.querySelectorAll(templatedata-astro-template);for(let n of h){let sn.closest(this.tagName);s!null&&s.isSameNode(this)&&(an.getAttribute(data-astro-template)||defaultn.innerHTML,n.remove())}for(let n of r){let sn.closest(this.tagName);s!null&&s.isSameNode(this)&&(an.getAttribute(name)||defaultn.innerHTML)}let u;try{uthis.hasAttribute(props)?m(JSON.parse(this.getAttribute(props))):{}}catch(n){let sthis.getAttribute(component-url)||unknown>,ythis.getAttribute(component-export);throw y&&(s+` (export ${y})`),console.error(`hydrate Error parsing props for component ${s}`,this.getAttribute(props),n),n}await this.hydrator(this)(this.Component,u,a,{client:this.getAttribute(client)}),this.removeAttribute(ssr),this.dispatchEvent(new CustomEvent(astro:hydrate))});l(this,unmount,()>{this.isConnected||this.dispatchEvent(new CustomEvent(astro:unmount))})}disconnectedCallback(){document.removeEventListener(astro:after-swap,this.unmount),document.addEventListener(astro:after-swap,this.unmount,{once:!0})}connectedCallback(){if(!this.hasAttribute(await-children)||document.readyStateinteractive||document.readyStatecomplete)this.childrenConnectedCallback();else{let e()>{document.removeEventListener(DOMContentLoaded,e),r.disconnect(),this.childrenConnectedCallback()},rnew MutationObserver(()>{var a;((athis.lastChild)null?void 0:a.nodeType)Node.COMMENT_NODE&&this.lastChild.nodeValueastro:end&&(this.lastChild.remove(),e())});r.observe(this,{childList:!0}),document.addEventListener(DOMContentLoaded,e)}}async childrenConnectedCallback(){let ethis.getAttribute(before-hydration-url);e&&await import(e),this.start()}start(){let eJSON.parse(this.getAttribute(opts)),rthis.getAttribute(client);if(Astrorvoid 0){window.addEventListener(`astro:${r}`,()>this.start(),{once:!0});return}Astror(async()>{let athis.getAttribute(renderer-url),h,{default:u}await Promise.all(import(this.getAttribute(component-url)),a?import(a):()>()>{}),dthis.getAttribute(component-export)||default;if(!d.includes(.))this.Componenthd;else{this.Componenth;for(let n of d.split(.))this.Componentthis.Componentn}return this.hydratoru,this.hydrate},e,this)}attributeChangedCallback(){this.hydrate()}},l(p,observedAttributes,props),p))}})();/script>astro-island uidZn4KyD component-url/_astro/MainSearchFormWrapper.e80574cf.js component-exportdefault renderer-url/_astro/client.d583d621.js props{"maxSelectedPassengerCount":0,5,"startDate":0,"2024-08-11","returnDate":0,"2024-08-11","booking":0,true,"passengerCount":0,1,"searchMode":0,0,"showSticky":0,false,"showCta":0,false,"ctaSelectDateAndGoToSearch":0,true,"ctaShowTodayAndTomorrowButtons":0,false,"ctaButtonCss":0,"","i18nObject":0,{"_":0,null,"search":0,{"passengersLabel":0,"Pasajeros","pagination":0,{"nextButton":0,"Next","previousButton":0,"Previous"},"sort":0,{"options":0,{"duration":0,"Duración","departureV2":0,"Hora de salida","price":0,"Precio","departure":0,"Partida","durationV2":0,"Más rápido","co2V2":0,"El más ecológico","recommended":0,"Recomendado","arrival":0,"Llegada","priceV2":0,"Más barata","recommendedV2":0,"Barato y rápido"},"label":0,"Ordenar por"},"connections":0,{"outwardSelectionButton":0,"Seleccionar ida","durationLabel":0,"Duración","labels":0,{"fastest":0,"Más rápido","from":0,"desde","best":0,"Indicado","cheapest":0,"Más barato"},"detailsLink":0,"Comprobar detalles","hideDetails":0,"Ocultar detalles","stopAndWaitFor":0,"Deténgase y espere {{difference}}","clickoutButton":0,"Ver oferta","cancelRoundtripButton":0,"Cancelar","changes":0,{"many":0,"{{ n }} transbordos","direct":0,"directo","one":0,"{{ n }} transbordo/s"},"waitingTimeLabel":0,"Tiempo de espera","roundtripSelectionButton":0,"Seleccionar vuelta","showDetails":0,"Comprobar detalles","noResults":0,"Sin resultados","resultCountLabel":0,"{{ count }} resultados"},"dateReturnlabel":0,"Fecha de vuelta","filters":0,{"tabs":0,{"all":0,"Todos los medios de transporte","mixed":0,"Combinado","car":0,"Compartir Coche","bus":0,"Autobús","plane":0,"Vuelo","rentalcar":0,"Coche de alquiler","train":0,"Tren"},"titles":0,{"departures":0,"Estación de salida","arrivals":0,"Estación/aeropuerto de llegada","departureTime":0,"Salida","price":0,"Precio","changes":0,"Cambios","arrivalTime":0,"Llegada","duration":0,"Duración","companies":0,"Compañías","facilities":0,"Instalaciones"},"intervals":0,{"afternoon":0,"Mediodía","night":0,"Noche","evening":0,"Tarde","morning":0,"Mañana","earlyMorning":0,"Temprano en la mañana"},"dateStrings":0,{"sameMonthDateInterval":0,"{{ first }}, {{ last }} {{ month }}","dateAndMonth":0,"D MMM","timeWithDate":0,"D MMM, LT","differentMonthDateInterval":0,"{{ first }}, {{ last }}"},"label":0,"Filtrar","resetFiltersLabel":0,"Restablecer filtros","noFilteredResultMessage":0,"No hay resultados con estos filtros","applyButtonLabel":0,"Aplicar filtros","mobile":0,{"title":0,"Todos los filtros","resetBtn":0,"Reiniciar"},"facilities":0,{"wifi":0,"Wifi","accessibility":0,"Accesibilidad","bicycle":0,"Bicicleta","food_and_drink":0,"Comida y bebida","luggage":0,"Equipaje","power_sockets":0,"Tomas de corriente","quiet_zone":0,"Coche en Silencio","sleeper_couchette":0,"Sofá cama","air_con":0,"Aire acondicionado"},"noResultMessage":0,"No pudimos encontrar lo que estás buscando. Refinar su búsqueda con diferentes términos podría ser la solución. ¡Démosle otra oportunidad!"},"autocomplete":0,{"lastSearchResult":0,"Su último resultado de búsqueda","allStations":0,"Todas las estaciones","searchResults":0,"Resultados de la búsqueda","typeMore":0,"Escriba más para obtener resultados más relevantes.","suggestionHeader":0,"Escriba más para obtener mejores resultados"},"bestDealsLabel":0,"Mejores ofertas para","form":0,{"addReturn":0,"Regreso","modes":0,{"oneWayLabel":0,"Ida","roundTripLabel":0,"Ida y vuelta"},"cancelButton":0,"Cancelar","searchAccomodationsBooking":0,"Busca también alojamiento con Booking.com","departurePlaceLabel":0,"Selecciona una salida","departureDateLabel":0,"Fecha","doneButton":0,"Hecho","arrivalPlaceLabel":0,"Selecciona un destino","passengers":0,{"label":0,"Pasajeros","one":0,"{{ n }} Pasajero","many":0,"{{ n }} Pasajeros"},"searchButton":0,"Buscar","arrivalDateLabel":0,"Fecha de vuelta","submit":0,"Entregar","remove":0,"Remover","exploreButton":0,"Explorar","departurePlacePlaceholder":0,"Yéndose de...","destinationPlacePlaceholder":0,"Ir a..."},"ads":0,{"premiumPlacement":0,{"trainline":0,{"buttonLabel":0,"Plusxxx","body":0,"Trouvez des billets de train pas chers pour Lyon","price":0,"A partir de","category":0,"Offre spéciale"},"sncf":0,{"bookNow":0,"Reservar","from":0,"A partir de","body":0,"<span>{{from}}</span> – <span>{{to}}</span> en tren con <span>OUI.sncf</span>"},"movacar":0,{"price":0,"Autovermietung für €1"},"labels":0,{"from":0,"A partir de"}}},"leisureLabel":0,"ocio","selectLabel":0,"Seleccionar","passengerLabel":0,"Pasajero","selection":0,{"modes":0,{"outward":0,"Ida","roundtrip":0,"Vuelta"},"continueButton":0,"Continuar","title":0,"Detalles del viaje","readBefore":0,"Leer antes","redirectText":0,"Será redirigido a nuestro socio {{ redirectProvider }}."},"destinationLabel":0,"Selecciona un destino","pickUpLocationLabel":0,"Lugar de recogida","departureLabel":0,"Selecciona una salida","roundTripLabel":0,"Ida y vuelta","summary":0,{"redirect":0,{"landing":0,{"search":0,"Lo redireccionaremos a la página de búsqueda de {{ provider }} con sus condiciones de búsqueda ya rellenadas. Encontrará la misma oferta allí, en la que debe hacer clic para comenzar la compra.","default":0,"Lo redireccionaremos al sitio web de {{ provider }} para comenzar la compra.","booking":0,"Lo redireccionaremos a la página de reserva de {{ provider }} de la oferta seleccionada para finalizar su compra."},"type":0,{"direct":0,"Va a reservar directamente con {{ provider }}, sin utilizar una plataforma de reserva de terceros.<br /><br />{{ landingText }}<br /><br />Siempre mostramos el precio completo, incluyendo una estimación de todos los impuestos y cargos obligatorios de acuerdo con lo que nos informa nuestro socio. A veces los precios se actualizan: <b>verifique cuidadosamente el precio final</b> en el sitio web del socio, así como todos los detalles y condiciones de los billetes (especialmente cuando viaja con niños).","default":0,"Va a reservar con {{ provider }}.<br /><br />{{ landingText }}<br /><br />Siempre mostramos el precio completo, incluyendo una estimación de todos los impuestos y cargos obligatorios de acuerdo con lo que nos informa nuestro socio. A veces los precios se actualizan: <b>verifique cuidadosamente el precio final</b> en el sitio web del socio, así como todos los detalles y condiciones de los billetes (especialmente cuando viaja con niños).","aggregator":0,"Va a reservar con {{ provider }}, que es el socio oficial de reservas de {{ provider }}. Lo redireccionaremos al sitio web de {{ provider }}.<br /><br />{{ landingText }}<br /><br />Siempre mostramos el precio completo, incluyendo una estimación de todos los impuestos y cargos obligatorios de acuerdo con lo que nos informa nuestro socio. A veces los precios se actualizan: <b>verifique cuidadosamente el precio final</b> en el sitio web del socio, así como todos los detalles y condiciones de los billetes (especialmente cuando viaja con niños)."}}},"datetime":0,{"datepicker":0,{"dateFormat":0,"DD/MM/YYYY","lowPricesText":0,"El precio es más bajo de lo habitual."}},"onewayLabel":0,"Ida","bookingInfo":0,{"roomsFromPrice":0,"Habitaciones desde {{price}} con {{bookingLogo}}","findRoom":0,"encontrar habitación","stayIn":0,"Quédate en {{destination}}"},"pickUpDateLabel":0,"Fecha de recogida","reasonLabel":0,"Propósito","searchLabel":0,"Buscar","tripLabel":0,"Viaje","dateLabel":0,"Fecha","businessLabel":0,"negocios","bookingLabel":0,"Busca también alojamiento con Booking.com","resultHeadText":0,{"outward":0,"Seleccionar ida","return":0,"Seleccionar retorno"},"progress":0,{"label":0,"Comparamos múltiples sitios para asegurarnos de conseguir la mejor oferta para ti."},"rentalcars":0,{"heading":0,"¿Busca un automóvil en {{ origin }}?"},"marketplace":0,{"showMoreDeals":0,"Mostrar más ofertas","showDealsWithCountPlural":0,"{{n}} opciones desde","showDealsWithCountSingular":0,"{{n}} oferta","bookVia":0,"vía {{ seller }}"},"summaryPage":0,{"redirectText":0,"Serás redirigido a {{ redirectProvider }}."},"makeItRoundtrip":0,"Ahorre dinero reservando su viaje de regreso ahora."},"searchForm":0,{"searchButton":0,"Buscar boleto","stayWithBooking":0,"Quédate con Booking.com"}},"virailObject":0,{"autocomplete":0,"https://autocomplete.virail.app/api/v1/search?q{{ input }}&locale_codees&lat40.250823&lng-3.4559187&sortcity_population:desc","firstDayOfTheWeek":0,1,"abtest":0,{"clicktripz":0,"parallax","feed":0,"booking","flatfee":0,"true","flixbus":0,"default","googleonetap":0,"hidden","roundtripdeeplink":0,"single"},"timezone":0,"searchCookies":0,"recent_searches_v1","tld":0,"es","locale":0,"es","stdLocale":0,"es","searchLocale":0,"es","momentjs":0,{"weekdaysMin":1,0,"Su",0,"Mo",0,"Tu",0,"We",0,"Th",0,"Fr",0,"Sa","months":1,0,"January",0,"February",0,"March",0,"April",0,"May",0,"June",0,"July",0,"August",0,"September",0,"October",0,"November",0,"December"},"routeData":0,null,"transport":0}} ssr clientload opts{"name":"MainSearchFormWrapper","value":true} await-children>div data-test-idmain-search-form-island>div classflex w-full bg-white rounded-lg md:rounded-bl-none md:rounded-t-lg md:rounded-br-lg px-4 md:p-4 flex-col md:mr-auto relative z-10 shadow-md data-v-dc62c14e>form classm-0 p-0 w-full data-v-dc62c14e>div classflex z-10 my-2 justify-between md:hidden data-v-dc62c14e>/div>div classhidden lg:flex flex-row w-full gap-x-2 items-center data-v-dc62c14e>div classflex-1 relative isolate data-test-iddesktop-departure-input data-v-dc62c14e>div classabsolute z-10 inset-y-0 left-0 px-2.5 flex items-center pointer-events-none text-#20203E data-test-idicon>svg data-test-idicon-departure width24 height24 viewbox0 0 24 24 fillnone xmlnshttp://www.w3.org/2000/svg>mask idmask0_1568_1148 stylemask-type:alpha; maskUnitsuserSpaceOnUse x0 y0 width24 height24>rect width24 height24 fill#D9D9D9>/rect>/mask>g maskurl(#mask0_1568_1148)>path dM12 16C13.1048 16 14.0476 15.6095 14.8286 14.8286C15.6095 14.0476 16 13.1048 16 12C16 10.8952 15.6095 9.95238 14.8286 9.17143C14.0476 8.39048 13.1048 8 12 8C10.8952 8 9.95238 8.39048 9.17143 9.17143C8.39048 9.95238 8 10.8952 8 12C8 13.1048 8.39048 14.0476 9.17143 14.8286C9.95238 15.6095 10.8952 16 12 16Z fill#9D9D9D>/path>path dM10.9998 22.9501V20.9501C8.91647 20.7167 7.12914 19.8544 5.6378 18.3631C4.1458 16.8711 3.28314 15.0834 3.0498 13H1.0498V11H3.0498C3.28314 8.91672 4.1458 7.12905 5.6378 5.63705C7.12914 4.14572 8.91647 3.28338 10.9998 3.05005V1.05005H12.9998V3.05005C15.0831 3.28338 16.8708 4.14572 18.3628 5.63705C19.8541 7.12905 20.7165 8.91672 20.9498 11H22.9498V13H20.9498C20.7165 15.0834 19.8541 16.8711 18.3628 18.3631C16.8708 19.8544 15.0831 20.7167 12.9998 20.9501V22.9501H10.9998ZM11.9998 19C13.9331 19 15.5831 18.3167 16.9498 16.95C18.3165 15.5834 18.9998 13.9334 18.9998 12C18.9998 10.0667 18.3165 8.41672 16.9498 7.05005C15.5831 5.68338 13.9331 5.00005 11.9998 5.00005C10.0665 5.00005 8.41647 5.68338 7.0498 7.05005C5.68314 8.41672 4.9998 10.0667 4.9998 12C4.9998 13.9334 5.68314 15.5834 7.0498 16.95C8.41647 18.3167 10.0665 19 11.9998 19Z fill#1E1E1E>/path>/g>/svg>/div>div classw-full flex relative style>input typetext classw-full border-none pl-10 bg-virail-gray-light-500 rounded-lg text-sm outline-none text-virail-gray-600 py-2 px-3 leading-26px font-normal transition-colors duration-200 ease-in-out focus:ring-transparent border-transparentplaceholder-gray-400 placeholder-gray-300 placeholderSelecciona una salida aria-labelSearch autocompleteoff autocapitalizeoff autocorrectoff data-lpignoretrue>/div>/div>button iddestination-switcher data-test-iddesktop-location-switcher aria-labelSwitch Destination data-v-dc62c14e>div classflex h-12 w-10 items-center justify-center lg:shrink-0 lg:bg-virail-gray-light-500 lg:hover:bg-virail-green-500 lg:hover:text-white lg:rounded-lg lg:transition lg:duration-300 lg:w-42px lg:h-42px>svg data-test-idicon-swap-location-desktop fillnone viewbox0 0 24 24 strokecurrentColor classh-6 w-6>path stroke-linecapround stroke-linejoinround stroke-width2 dM8 7h12m0 0l-4-4m4 4l-4 4m0 6H4m0 0l4 4m-4-4l4-4>/path>/svg>/div>/button>div classflex-1 relative isolate data-test-iddesktop-destination-input data-v-dc62c14e>div classabsolute z-10 inset-y-0 left-0 px-2.5 flex items-center pointer-events-none text-#20203E data-test-idicon>svg data-test-idicon-destination xmlnshttp://www.w3.org/2000/svg width24 height24 viewbox0 0 24 24 fillnone>path dM7.97559 17.5306C8.09687 18.0694 7.7584 18.6045 7.2196 18.7258C6.35214 18.9211 5.71016 19.1549 5.31073 19.3834C5.23079 19.4291 5.16903 19.4694 5.12159 19.5035C5.13958 19.5165 5.15957 19.5304 5.18177 19.5451C5.46383 19.7324 5.93794 19.9398 6.61348 20.1295C7.95067 20.505 9.85544 20.7502 12 20.7502C14.1446 20.7502 16.0493 20.505 17.3865 20.1295C18.0621 19.9398 18.5362 19.7324 18.8182 19.5451C18.8404 19.5304 18.8604 19.5165 18.8784 19.5035C18.831 19.4694 18.7692 19.4291 18.6893 19.3834C18.2898 19.1549 17.6479 18.9211 16.7804 18.7258C16.2416 18.6045 15.9031 18.0694 16.0244 17.5306C16.1457 16.9918 16.6808 16.6533 17.2196 16.7746C18.1811 16.991 19.0391 17.2794 19.6824 17.6474C20.2542 17.9745 21 18.5672 21 19.5039C21 20.3297 20.4136 20.8866 19.9244 21.2114C19.3968 21.5616 18.6994 21.8382 17.9272 22.055C16.3689 22.4926 14.2737 22.7502 12 22.7502C9.72629 22.7502 7.63105 22.4926 6.07281 22.055C5.30063 21.8382 4.60317 21.5616 4.07559 21.2114C3.58644 20.8866 3 20.3297 3 19.5039C3 18.5672 3.74579 17.9745 4.31758 17.6474C4.96092 17.2794 5.81894 16.991 6.7804 16.7746C7.31921 16.6533 7.85431 16.9918 7.97559 17.5306Z fill#1E1E1E>/path>path dM4.84158 6.01574C6.05208 3.10493 8.94965 1.25 12.0005 1.25C15.0514 1.25 17.949 3.10493 19.1595 6.01574C20.285 8.72228 19.6745 11.034 18.4106 13.0032C17.367 14.6292 15.8394 16.0769 14.4806 17.3645C14.2401 17.5925 14.0044 17.8157 13.7781 18.0337C13.3008 18.4935 12.6633 18.75 12.0005 18.75C11.3377 18.75 10.7003 18.4935 10.223 18.0338L10.2214 18.0322C9.98199 17.8002 9.73237 17.5628 9.47688 17.3198C8.13245 16.0411 6.62554 14.6079 5.59274 13.0023C4.32729 11.035 3.71464 8.72562 4.84158 6.01574Z fill#9D9D9D>/path>path dM9 9C9 7.34315 10.3431 6 12 6C13.6569 6 15 7.34315 15 9C15 10.6569 13.6569 12 12 12C10.3431 12 9 10.6569 9 9Z fill#1E1E1E>/path>/svg>/div>div classw-full flex relative style>input typetext classw-full border-none pl-10 bg-virail-gray-light-500 rounded-lg text-sm outline-none text-virail-gray-600 py-2 px-3 leading-26px font-normal transition-colors duration-200 ease-in-out focus:ring-transparent border-transparentplaceholder-gray-400 placeholder-gray-300 placeholderSelecciona un destino aria-labelSearch autocompleteoff autocapitalizeoff autocorrectoff data-lpignoretrue>/div>/div>div classgrid grid-cols-2 gap-0.5 data-v-dc62c14e>div classflex-1 relative isolate w-32 data-test-iddesktop-start-date data-v-dc62c14e>div classabsolute z-10 inset-y-0 left-0 px-2.5 flex items-center pointer-events-none text-#20203E data-test-idicon>svg data-test-idicon-calendar xmlnshttp://www.w3.org/2000/svg width24 height24 viewbox0 0 24 24 fillnone>path dM7 3C4.7909 3 2.9999 4.791 3 7L3 8H21V7C21 4.791 19.2091 3 17 3C16.1646 3.00001 10.4434 3.00001 8 3C7.51869 3 7.16456 3 7 3Z fill#9D9D9D>/path>path fill-ruleevenodd clip-ruleevenodd dM7.99414 2C8.54643 2 8.99414 2.44738 8.99414 2.99926V4.99777C8.99414 5.54964 8.54643 5.99702 7.99414 5.99702C7.44186 5.99702 6.99414 5.54964 6.99414 4.99777V2.99926C6.99414 2.44738 7.44186 2 7.99414 2ZM15.9941 2C16.5464 2 16.9941 2.44738 16.9941 2.99926V4.99777C16.9941 5.54964 16.5464 5.99702 15.9941 5.99702C15.4419 5.99702 14.9941 5.54964 14.9941 4.99777V2.99926C14.9941 2.44738 15.4419 2 15.9941 2ZM3 17.003V10.0082H21V17.003C21.0001 19.2103 19.2091 21 17 21H7C4.7909 21 3 19.2103 3 17.003ZM9 13.006C9 12.4544 8.5523 12.0067 8 12.0067C7.4477 12.0067 7 12.4544 7 13.006C7 13.5575 7.4477 14.0052 8 14.0052C8.5523 14.0052 9 13.5575 9 13.006ZM13 13.006C13 12.4544 12.5523 12.0067 12 12.0067C11.4477 12.0067 11 12.4544 11 13.006C11 13.5575 11.4477 14.0052 12 14.0052C12.5523 14.0052 13 13.5575 13 13.006ZM17 13.006C17 12.4544 16.5523 12.0067 16 12.0067C15.4477 12.0067 15 12.4544 15 13.006C15 13.5575 15.4477 14.0052 16 14.0052C16.5523 14.0052 17 13.5575 17 13.006ZM9 17.003C9 16.4514 8.5523 16.0037 8 16.0037C7.4477 16.0037 7 16.4514 7 17.003C7 17.5546 7.4477 18.0022 8 18.0022C8.5523 18.0022 9 17.5546 9 17.003ZM13 17.003C13 16.4514 12.5523 16.0037 12 16.0037C11.4477 16.0037 11 16.4514 11 17.003C11 17.5546 11.4477 18.0022 12 18.0022C12.5523 18.0022 13 17.5546 13 17.003ZM17 17.003C17 16.4514 16.5523 16.0037 16 16.0037C15.4477 16.0037 15 16.4514 15 17.003C15 17.5546 15.4477 18.0022 16 18.0022C16.5523 18.0022 17 17.5546 17 17.003Z fill#1E1E1E>/path>/svg>/div>div classflex-1 relative h-full flex items-center data-v-dc62c14e>div data-test-idmasked-date rolebutton id classpy-2 px-3 h-12 rounded-l-lg bg-virail-gray-light-500 cursor-pointer pl-10 w-full flex items-center border-none text-sm outline-none leading-18.4px transition-colors duration-200 ease-in-out xs:text-base lg:text-sm lg:leading-26px lg:font-normal lg:h-42px>10/08/2024/div>/div>/div>div classflex-1 relative isolate w-32 data-test-iddesktop-return-date data-v-dc62c14e>div classabsolute z-10 inset-y-0 left-0 px-2.5 flex items-center pointer-events-none text-#20203E data-test-idicon>/div>div classflex-1 relative h-full flex items-center data-v-dc62c14e>div rolebutton classpy-2 px-3 h-12 bg-virail-gray-light-500 rounded-r-lg cursor-pointer justify-center px-3 w-full flex items-center border-none rounded-r-lg text-sm outline-none leading-18.4px transition-colors duration-200 ease-in-out xs:text-base lg:text-sm lg:leading-26px lg:font-normal lg:h-42px py-1 bg-virail-gray-50 cursor-pointer>span classtracking-tighter text-gray-700 text-sm xs:text-base lg:text-sm data-test-idadd-return-button>+ Regreso/span>/div>/div>/div>/div>div classflex-1 relative isolate data-test-iddesktop-passenger-input data-v-dc62c14e>div classabsolute z-10 inset-y-0 left-0 px-2.5 flex items-center pointer-events-none text-#20203E data-test-idicon>svg data-test-idicon-passenger xmlnshttp://www.w3.org/2000/svg width24 height24 viewbox0 0 24 24 fillnone>path dM17.8063 14.8372C17.9226 14.9064 18.0663 14.9875 18.229 15.0793C18.9418 15.4814 20.0193 16.0893 20.7575 16.8118C21.2191 17.2637 21.6578 17.8592 21.7375 18.5888C21.8223 19.3646 21.4839 20.0927 20.8048 20.7396C19.6334 21.8556 18.2276 22.75 16.4093 22.75H7.59104C5.77274 22.75 4.36695 21.8556 3.1955 20.7396C2.51649 20.0927 2.17802 19.3646 2.26283 18.5888C2.34257 17.8592 2.78123 17.2637 3.2429 16.8118C3.98106 16.0893 5.05857 15.4814 5.77139 15.0793C5.93405 14.9876 6.07773 14.9064 6.19404 14.8372C9.74809 12.7209 14.2523 12.7209 17.8063 14.8372Z fill#1E1E1E>/path>path dM6.75 6.5C6.75 3.6005 9.1005 1.25 12 1.25C14.8995 1.25 17.25 3.6005 17.25 6.5C17.25 9.39949 14.8995 11.75 12 11.75C9.1005 11.75 6.75 9.39949 6.75 6.5Z fill#9D9D9D>/path>/svg>/div>div data-headlessui-state classrelative inline-block text-left w-full idpassenger-dropdown data-componentpasssenger-dropdown option-title-keytext data-v-dc62c14e>button classw-full bg-virail-gray-light-500 flex flex-row items-center gap-1 rounded-md lead ing-7 pl-10 pr-1 py-9px text-sm focus:outline-none data-test-idbutton idheadlessui-popover-button-17113 typebutton aria-expandedfalse data-headlessui-state>div classlabel font-normal leading-6 xl:font-medium data-test-idlabel>1 Pasajero/div>/button>/div>/div>button typesubmit classvirail-cta-button flex justify-center border-0 py-2 px-6 focus:outline-none rounded-lg text-base leading-26px tracking-wider font-medium data-v-dc62c14e>span classvir-wordbreak-keep-all data-v-dc62c14e>Buscar/span>/button>/div>div classlg:hidden data-test-idmobile-departure-input data-v-dc62c14e>div classrelative data-v-dc62c14e>button iddestination-switcher data-test-iddesktop-location-switcher aria-labelSwitch Destination classabsolute right-0 z-10 group data-v-dc62c14e>div classflex h-12 w-10 items-center justify-center lg:shrink-0 lg:bg-virail-gray-light-500 lg:hover:bg-virail-green-500 lg:hover:text-white lg:rounded-lg lg:transition lg:duration-300 lg:w-42px lg:h-42px>svg data-test-idicon-swap-location-mobile width16 height20 viewbox0 0 16 20 fillnone xmlnshttp://www.w3.org/2000/svg>path dM-2.18557e-07 5L5 -4.80825e-07L10 5L8.575 6.4L6 3.825L6 11L4 11L4 3.825L1.425 6.4L-2.18557e-07 5ZM6 15L7.425 13.6L10 16.175L10 9L12 9L12 16.175L14.575 13.6L16 15L11 20L6 15Z fill#20203E>/path>/svg>/div>/button>div classz-10 absolute inset-y-0 left-0 px-3 flex items-center pointer-events-none data-v-dc62c14e>svg classw-5 aspect-square viewBox0 0 22 22 fillnone xmlnshttp://www.w3.org/2000/svg data-v-dc62c14e>path dM9.9998 21.9501V19.9501C7.91647 19.7167 6.12914 18.8544 4.6378 17.3631C3.1458 15.8711 2.28314 14.0834 2.0498 12H0.0498047V10H2.0498C2.28314 7.91672 3.1458 6.12905 4.6378 4.63705C6.12914 3.14572 7.91647 2.28338 9.9998 2.05005V0.0500488H11.9998V2.05005C14.0831 2.28338 15.8708 3.14572 17.3628 4.63705C18.8541 6.12905 19.7165 7.91672 19.9498 10H21.9498V12H19.9498C19.7165 14.0834 18.8541 15.8711 17.3628 17.3631C15.8708 18.8544 14.0831 19.7167 11.9998 19.9501V21.9501H9.9998ZM10.9998 18C12.9331 18 14.5831 17.3167 15.9498 15.95C17.3165 14.5834 17.9998 12.9334 17.9998 11C17.9998 9.06672 17.3165 7.41672 15.9498 6.05005C14.5831 4.68338 12.9331 4.00005 10.9998 4.00005C9.06647 4.00005 7.41647 4.68338 6.0498 6.05005C4.68314 7.41672 3.9998 9.06672 3.9998 11C3.9998 12.9334 4.68314 14.5834 6.0498 15.95C7.41647 17.3167 9.06647 18 10.9998 18ZM10.9998 15C9.8998 15 8.95814 14.6084 8.1748 13.825C7.39147 13.0417 6.9998 12.1 6.9998 11C6.9998 9.90005 7.39147 8.95838 8.1748 8.17505C8.95814 7.39172 9.8998 7.00005 10.9998 7.00005C12.0998 7.00005 13.0415 7.39172 13.8248 8.17505C14.6081 8.95838 14.9998 9.90005 14.9998 11C14.9998 12.1 14.6081 13.0417 13.8248 13.825C13.0415 14.6084 12.0998 15 10.9998 15Z fill#20203E data-v-dc62c14e>/path>/svg>/div>div classw-full flex relative style>input typetext classw-full flex items-center border-none pl-10 bg-virail-gray-50 rounded-lg text-base outline-none text-virail-gray-600 font-normal py-1 px-3 leading-4 h-12 transition-colors duration-200 ease-in-out focus:ring-virail-500placeholder-gray-400 placeholder-gray-300 placeholderSelecciona una salida aria-labelSearch autocompleteoff autocapitalizeoff autocorrectoff data-lpignoretrue>/div>/div>/div>div classmt-2 lg:hidden data-test-idmobile-destination-input data-v-dc62c14e>div classrelative data-v-dc62c14e>div classz-10 absolute inset-y-0 left-0 px-3 flex items-center pointer-events-none data-v-dc62c14e>svg classh-5 viewBox0 0 14 20 fillnone xmlnshttp://www.w3.org/2000/svg data-v-dc62c14e>path dM7 20C4.65 18.2667 1.737 11.95 1.737 11.95C1.737 11.95 0 8.71667 0 7.15C0 5.96667 0.212667 4.929 0.638 4.037C1.06267 3.14567 1.60833 2.4 2.275 1.8C2.94167 1.2 3.69167 0.75 4.525 0.45C5.35833 0.15 6.18333 0 7 0C7.81667 0 8.64167 0.15 9.475 0.45C10.3083 0.75 11.0583 1.2 11.725 1.8C12.3917 2.4 12.9377 3.14567 13.363 4.037C13.7877 4.929 14 5.96667 14 7.15C14 8.71667 12.262 11.95 12.262 11.95C12.262 11.95 9.35 18.2667 7 20ZM7 9C7.55 9 8.021 8.804 8.413 8.412C8.80433 8.02067 9 7.55 9 7C9 6.45 8.80433 5.979 8.413 5.587C8.021 5.19567 7.55 5 7 5C6.45 5 5.97933 5.19567 5.588 5.587C5.196 5.979 5 6.45 5 7C5 7.55 5.196 8.02067 5.588 8.412C5.97933 8.804 6.45 9 7 9Z fill#20203E data-v-dc62c14e>/path>/svg>/div>div classw-full flex relative style>input typetext classw-full flex items-center border-none pl-10 bg-virail-gray-50 rounded-lg text-base outline-none text-gray-700 py-1 px-3 leading-4 h-12 transition-colors duration-200 ease-in-out focus:ring-virail-500placeholder-gray-400 placeholder-gray-300 placeholderSelecciona un destino aria-labelSearch autocompleteoff autocapitalizeoff autocorrectoff data-lpignoretrue>/div>/div>/div>div classmt-2 grid grid-cols-8 gap-y-3 lg:hidden data-v-dc62c14e>div classcol-span-4 lg:col-span-3 order-first lg:order-2 border-r border-white data-test-idmobile-departure-datepicker data-v-dc62c14e>div classrounded-lg relative data-v-dc62c14e>div classz-10 absolute inset-y-0 left-0 flex items-center pointer-events-none px-3 data-v-dc62c14e>svg data-test-idicon-calendar xmlnshttp://www.w3.org/2000/svg width24 height24 viewbox0 0 24 24 fillnone data-v-dc62c14e>path dM7 3C4.7909 3 2.9999 4.791 3 7L3 8H21V7C21 4.791 19.2091 3 17 3C16.1646 3.00001 10.4434 3.00001 8 3C7.51869 3 7.16456 3 7 3Z fill#9D9D9D>/path>path fill-ruleevenodd clip-ruleevenodd dM7.99414 2C8.54643 2 8.99414 2.44738 8.99414 2.99926V4.99777C8.99414 5.54964 8.54643 5.99702 7.99414 5.99702C7.44186 5.99702 6.99414 5.54964 6.99414 4.99777V2.99926C6.99414 2.44738 7.44186 2 7.99414 2ZM15.9941 2C16.5464 2 16.9941 2.44738 16.9941 2.99926V4.99777C16.9941 5.54964 16.5464 5.99702 15.9941 5.99702C15.4419 5.99702 14.9941 5.54964 14.9941 4.99777V2.99926C14.9941 2.44738 15.4419 2 15.9941 2ZM3 17.003V10.0082H21V17.003C21.0001 19.2103 19.2091 21 17 21H7C4.7909 21 3 19.2103 3 17.003ZM9 13.006C9 12.4544 8.5523 12.0067 8 12.0067C7.4477 12.0067 7 12.4544 7 13.006C7 13.5575 7.4477 14.0052 8 14.0052C8.5523 14.0052 9 13.5575 9 13.006ZM13 13.006C13 12.4544 12.5523 12.0067 12 12.0067C11.4477 12.0067 11 12.4544 11 13.006C11 13.5575 11.4477 14.0052 12 14.0052C12.5523 14.0052 13 13.5575 13 13.006ZM17 13.006C17 12.4544 16.5523 12.0067 16 12.0067C15.4477 12.0067 15 12.4544 15 13.006C15 13.5575 15.4477 14.0052 16 14.0052C16.5523 14.0052 17 13.5575 17 13.006ZM9 17.003C9 16.4514 8.5523 16.0037 8 16.0037C7.4477 16.0037 7 16.4514 7 17.003C7 17.5546 7.4477 18.0022 8 18.0022C8.5523 18.0022 9 17.5546 9 17.003ZM13 17.003C13 16.4514 12.5523 16.0037 12 16.0037C11.4477 16.0037 11 16.4514 11 17.003C11 17.5546 11.4477 18.0022 12 18.0022C12.5523 18.0022 13 17.5546 13 17.003ZM17 17.003C17 16.4514 16.5523 16.0037 16 16.0037C15.4477 16.0037 15 16.4514 15 17.003C15 17.5546 15.4477 18.0022 16 18.0022C16.5523 18.0022 17 17.5546 17 17.003Z fill#1E1E1E>/path>/svg>/div>div classflex-1 relative h-full flex items-center data-v-dc62c14e>div data-test-idmasked-date rolebutton id classpy-1 px-3 h-12 rounded-l-lg bg-virail-gray-50 cursor-pointer lg:rounded-lg pl-10 w-full flex items-center border-none text-sm outline-none leading-18.4px transition-colors duration-200 ease-in-out xs:text-base lg:text-sm lg:leading-26px lg:font-normal lg:h-42px>10/08/2024/div>/div>/div>/div>div classcol-span-4 lg:col-span-3 order-2 lg:order-3 border-l border-white data-test-idmobile-destination-datepicker data-v-dc62c14e>div classrounded-lg relative w-full h-full bg-gray-200 data-v-dc62c14e>div classflex-1 relative h-full flex items-center data-v-dc62c14e>div rolebutton classpy-1 px-3 h-12 bg-virail-gray-50 rounded-r-lg cursor-pointer lg:rounded-lg justify-center px-3 w-full flex items-center border-none rounded-r-lg text-sm outline-none leading-18.4px transition-colors duration-200 ease-in-out xs:text-base lg:text-sm lg:leading-26px lg:font-normal lg:h-42px py-1 bg-virail-gray-50 cursor-pointer>span classtracking-tighter text-gray-700 text-sm xs:text-base lg:text-sm data-test-idadd-return-button>+ Regreso/span>/div>/div>/div>/div>/div>div classlg:hidden rounded-lg overflow-hidden relative w-full h-full bg-virail-gray-50 mt-2 data-test-idmobile-passenger-input data-v-dc62c14e>div classz-10 absolute inset-y-0 left-0 flex items-center pointer-events-none px-3 data-v-dc62c14e>svg data-test-idicon-passenger xmlnshttp://www.w3.org/2000/svg width24 height24 viewbox0 0 24 24 fillnone data-v-dc62c14e>path dM17.8063 14.8372C17.9226 14.9064 18.0663 14.9875 18.229 15.0793C18.9418 15.4814 20.0193 16.0893 20.7575 16.8118C21.2191 17.2637 21.6578 17.8592 21.7375 18.5888C21.8223 19.3646 21.4839 20.0927 20.8048 20.7396C19.6334 21.8556 18.2276 22.75 16.4093 22.75H7.59104C5.77274 22.75 4.36695 21.8556 3.1955 20.7396C2.51649 20.0927 2.17802 19.3646 2.26283 18.5888C2.34257 17.8592 2.78123 17.2637 3.2429 16.8118C3.98106 16.0893 5.05857 15.4814 5.77139 15.0793C5.93405 14.9876 6.07773 14.9064 6.19404 14.8372C9.74809 12.7209 14.2523 12.7209 17.8063 14.8372Z fill#1E1E1E>/path>path dM6.75 6.5C6.75 3.6005 9.1005 1.25 12 1.25C14.8995 1.25 17.25 3.6005 17.25 6.5C17.25 9.39949 14.8995 11.75 12 11.75C9.1005 11.75 6.75 9.39949 6.75 6.5Z fill#9D9D9D>/path>/svg>/div>div data-headlessui-state classrelative inline-block text-left w-full idpassenger-dropdown data-componentpasssenger-dropdown option-title-keytext data-v-dc62c14e>button classw-full flex flex-row items-center gap-1 rounded-md lead ing-7 pl-10 pr-1 py-3 text-base focus:outline-none data-test-idbutton idheadlessui-popover-button-17118 typebutton aria-expandedfalse data-headlessui-state>div classlabel font-normal leading-6 xl:font-medium data-test-idlabel>1 Pasajero/div>/button>/div>/div>button typesubmit classw-full mt-4 text-white bg-virail-red-500 hover:bg-virail-red-400 hover:text-red-700 border-0 py-3 px-6 focus:outline-none rounded-lg capitalize text-base font-medium leading-5 tracking-wider virail-color-transition lg:hidden data-test-idmobile-search-button data-v-dc62c14e>Buscar/button>div classblock my-2 md:hidden booking-options-switch data-v-dc62c14e>fieldset data-v-dc62c14e>div classflex flex-row-reverse justify-between data-v-dc62c14e>div classflex items-center justify-center data-test-idmobile-booking-switch data-v-dc62c14e>div classw-auto mx-auto>div classflex items-center space-x-4>button aria-labelToggle Switch classrelative inline-flex shrink-0 transition-all duration-200 ease-in-out rounded-full cursor-pointer focus:outline-none focus:shadow-outline bg-gray-200 border-2 border-transparent styleheight:1.5rem;width:2.75rem; idheadlessui-switch-17123 roleswitch typebutton tabindex0 aria-checkedfalse data-headlessui-state>span classinline-block transition duration-200 ease-in-out transform bg-white rounded-full styletransform:translateX(0px);height:1.25rem;width:1.25rem;>/span>/button>/div>/div>/div>span classleading-7 text-sm text-virail-gray-500 data-v-dc62c14e>Quédate con Booking.com/span>/div>/fieldset>/div>/form>/div>div classhidden md:block booking-options-switch data-v-dc62c14e>fieldset data-v-dc62c14e>div classflex flex-row bg-white px-6 xl:px-8 py-0.5 xl:py-1 rounded-b-lg shadow-md w-fit gap-x-2 data-v-dc62c14e>div classflex items-center justify-center data-test-idbooking-switch data-v-dc62c14e>div classw-auto mx-auto>div classflex items-center space-x-4>button aria-labelToggle Switch classrelative inline-flex shrink-0 transition-all duration-200 ease-in-out rounded-full cursor-pointer focus:outline-none focus:shadow-outline bg-gray-200 border-2 border-transparent styleheight:1rem;width:1.75rem; idheadlessui-switch-17124 roleswitch typebutton tabindex0 aria-checkedfalse data-headlessui-state>span classinline-block transition duration-200 ease-in-out transform bg-white rounded-full styletransform:translateX(0px);height:0.75rem;width:0.75rem;>/span>/button>/div>/div>/div>span classtext-xs leading-7 text-virail-gray-500 data-v-dc62c14e>Busca también alojamiento con Booking.com/span>/div>/fieldset>/div>/div>/astro-island> /div> div x-datalocationSelectorModal x-on:show-location-selector-modal.windowshowModal x-on:hide-location-selector-modal.windowhideModal x-showopen x-init$watch(inputValue, value > fetchCities(value)) data-test-idautocomplete-modal-on-mobile x-cloak> div classfixed z-50 inset-0 overflow-y-auto aria-labelledbymodal-title roledialog aria-modaltrue data-test-idautocomplete-modal-on-mobile__wrapper> div classflex items-end justify-center min-h-screen text-center sm:block sm:p-0> div classfixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity aria-hiddentrue>/div> span classhidden sm:inline-block sm:align-middle sm:h-screen aria-hiddentrue>/span> div classrelative isolate w-full h-screen align-bottom bg-gray-100 text-left overflow-hidden shadow-xl transform transition-all sm:my-8 sm:align-middle sm:max-w-lg sm:w-full> div classabsolute top-0 z-20 w-full flex flex-row gap-x-4 py-3 px-4 bg-gray-100 shadow-md> div classgrow relative> input x-reflocationInputOnModal typetext autocompleteoff autocapitalizeoff autocorrectoff data-lpignoretrue aria-invalidfalse aria-haspopupfalse aria-autocompleteboth aria-expandedfalse spellcheckfalse rolecombobox classw-full h-12 py-1 px-3 relative bg-white rounded-md shadow-md text-base outline-none text-gray-700 leading-8 border-none transition-colors duration-200 ease-in-out placeholder-gray-300 focus:outline-none focus:ring-0 focus:border-white focus:ring-virail-500 aria-labelSearch x-modelinputValue @inputshowSearchItems true> div @clickclearInput classabsolute h-12 top-0 right-3 flex flex-row items-center justify-center text-dusty-gray> svg xmlnshttp://www.w3.org/2000/svg classh-5 w-5 viewBox0 0 20 20 fillcurrentColor> path fill-ruleevenodd dM10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z clip-ruleevenodd>/path> /svg> /div> /div> div @click.preventhideModal classtext-virail-green-500 font-medium text-sm flex justify-center items-center leading-none cursor-pointer>Cancelar/div> /div> div classabsolute top-0 z-10 h-screen overflow-y-auto flex flex-col w-full transform transition-all roledialog aria-modaltrue aria-labelledbymodal-headline> div classpx-3 pt-20 pb-36> ul classflex flex-col w-full data-test-idautocomplete-modal-on-mobile__autocomplete-list> template x-showdata.length > 0 x-for(city, index) in data :keycity.k> li @clickselectLocationFromList(index) classtext-left text-sm mx-1 px-1 h-12 space-x-2 border-t-0 border-r-0 border-l-0 border-b border-gray-300 flex flex-row justify-between items-center> div classflex flex-row gap-x-2 items-center> div x-showcity.k0 c> svg xmlnshttp://www.w3.org/2000/svg classh-5 w-5 text-virail-green-500 fillnone viewBox0 0 24 24 strokecurrentColor> path stroke-linecapround stroke-linejoinround stroke-width2 dM17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z>/path> path stroke-linecapround stroke-linejoinround stroke-width2 dM15 11a3 3 0 11-6 0 3 3 0 016 0z>/path> /svg> /div> span x-bind:classcity.k0 ! c ? text-dusty-gray ml-7 : text-black text-base x-textcity.n>/span> /div> span x-bind:classflag flag- + city.c>/span> /li> /template> /ul> /div> /div> /div> /div> /div> /div> /div> /section> div classmx-auto text-center virail-container-lgmax pb-2 md:pb-0 mt-8 md:mt-10 data-test-idusp-wrapper> div classmx-auto mt-8 flex flex-col md:grid md:grid-rows-1 md:grid-cols-3 gap-4 lg:gap-11 virail-container> div classw-full> div classw-full h-full flex flex-row items-center gap-4> div classflex w-52px h-52px bg-virail-default rounded-lg items-center justify-center> svg width52 height24 viewBox0 0 18 24 fillnone xmlnshttp://www.w3.org/2000/svg> path dM8.40622 0.395996C10.0493 0.395996 11.4529 0.969079 12.6171 2.11525C13.7821 3.26214 14.3645 4.65711 14.3645 6.30016C14.3645 7.16683 14.1703 8.01977 13.7817 8.859C13.3939 9.69894 12.8118 10.4259 12.0354 11.0397H11.1146V8.95433C11.4396 8.59322 11.7014 8.1913 11.9 7.74858C12.0986 7.30658 12.1979 6.82377 12.1979 6.30016C12.1979 5.271 11.8234 4.39061 11.0745 3.659C10.3248 2.92811 9.43538 2.56266 8.40622 2.56266C7.34094 2.56266 6.4425 2.92811 5.71088 3.659C4.98 4.39061 4.61455 5.271 4.61455 6.30016C4.61455 6.82377 4.70916 7.3203 4.89838 7.78975C5.08833 8.25919 5.35483 8.66544 5.69788 9.0085V11.6627C4.72288 11.1571 3.93747 10.4349 3.34163 9.496C2.7458 8.55711 2.44788 7.49183 2.44788 6.30016C2.44788 4.65711 3.02566 3.26214 4.18122 2.11525C5.33677 0.969079 6.74511 0.395996 8.40622 0.395996ZM7.37705 23.146C7.07011 23.146 6.78122 23.0871 6.51038 22.9694C6.23955 22.8524 6.00483 22.6946 5.80622 22.496L0.227051 16.9168L1.74372 15.346C1.9965 15.0932 2.28105 14.8989 2.59738 14.7632C2.913 14.6281 3.24233 14.6057 3.58538 14.696L5.69788 15.1835V6.35433C5.69788 5.596 5.95969 4.95502 6.4833 4.43141C7.00691 3.9078 7.64788 3.646 8.40622 3.646C9.16455 3.646 9.80552 3.9078 10.3291 4.43141C10.8527 4.95502 11.1146 5.596 11.1146 6.35433V11.0127H11.8187C11.909 11.0127 11.9946 11.026 12.0755 11.0527C12.1571 11.0802 12.234 11.121 12.3062 11.1752L16.3145 13.1252C16.7479 13.3238 17.0682 13.6441 17.2755 14.0861C17.4835 14.5288 17.5423 14.9849 17.4521 15.4543L16.4771 21.3585C16.3868 21.8821 16.134 22.3111 15.7187 22.6455C15.3034 22.9792 14.834 23.146 14.3104 23.146H7.37705ZM7.37705 20.9793H14.3104L15.3395 15.0752L10.8437 12.8543H8.94788V6.35433C8.94788 6.19183 8.89841 6.06075 8.79947 5.96108C8.6998 5.86214 8.56872 5.81266 8.40622 5.81266C8.24372 5.81266 8.11263 5.86214 8.01297 5.96108C7.91402 6.06075 7.86455 6.19183 7.86455 6.35433V17.8377L3.26038 16.8627L7.37705 20.9793Z fillwhite>/path> /svg> /div> div classvir-bgwhite-infocard flex flex-col justify-start items-start text-left> h3>Simple/h3> span>La forma más fácil de encontrar las mejores ofertas con solo unos pocos clics/span> /div> /div> /div>div classw-full> div classw-full h-full flex flex-row items-center gap-4> div classflex w-52px h-52px bg-virail-default rounded-lg items-center justify-center> svg width52 height26 viewBox0 0 26 26 fillnone xmlnshttp://www.w3.org/2000/svg> path dM14.0625 25.5C13.7083 25.5 13.375 25.4321 13.0625 25.2962C12.75 25.1612 12.4792 24.9792 12.25 24.75L1.25 13.75C1.02083 13.5208 0.83875 13.25 0.70375 12.9375C0.567917 12.625 0.5 12.2917 0.5 11.9375V3C0.5 2.3125 0.745 1.72375 1.235 1.23375C1.72417 0.744583 2.3125 0.5 3 0.5H11.9375C12.2917 0.5 12.625 0.5675 12.9375 0.7025C13.25 0.838333 13.5208 1.02083 13.75 1.25L24.75 12.2812C25.2292 12.7604 25.4688 13.3488 25.4688 14.0462C25.4688 14.7446 25.2292 15.3333 24.75 15.8125L15.8125 24.75C15.5833 24.9792 15.3179 25.1612 15.0162 25.2962C14.7137 25.4321 14.3958 25.5 14.0625 25.5ZM14.0312 23L22.9688 14.0625L11.9375 3H3V11.9375L14.0312 23ZM6.125 8C6.64583 8 7.08833 7.8175 7.4525 7.4525C7.8175 7.08833 8 6.64583 8 6.125C8 5.60417 7.8175 5.16167 7.4525 4.7975C7.08833 4.4325 6.64583 4.25 6.125 4.25C5.60417 4.25 5.16167 4.4325 4.7975 4.7975C4.4325 5.16167 4.25 5.60417 4.25 6.125C4.25 6.64583 4.4325 7.08833 4.7975 7.4525C5.16167 7.8175 5.60417 8 6.125 8Z fill#F5F5F5>/path> /svg> /div> div classvir-bgwhite-infocard flex flex-col justify-start items-start text-left> h3>Mejor precio/h3> span>Encuentra el mejor precio para tu viaje sin coste adicional/span> /div> /div> /div>div classw-full> div classw-full h-full flex flex-row items-center gap-4> div classflex w-52px h-52px bg-virail-default rounded-lg items-center justify-center> svg width52 height34 viewBox0 0 35 34 fillnone xmlnshttp://www.w3.org/2000/svg> path dM17 33.6667C14.6944 33.6667 12.5278 33.2289 10.5 32.3534C8.4722 31.4789 6.70831 30.2917 5.20831 28.7917C3.70831 27.2917 2.52109 25.5278 1.64665 23.5C0.771091 21.4723 0.333313 19.3056 0.333313 17C0.333313 14.6945 0.771091 12.5278 1.64665 10.5C2.52109 8.47226 3.70831 6.70837 5.20831 5.20837C6.70831 3.70837 8.4722 2.5206 10.5 1.64504C12.5278 0.770596 14.6944 0.333374 17 0.333374C21.0555 0.333374 24.6039 1.60393 27.645 4.14504C30.6872 6.68726 32.5833 9.87504 33.3333 13.7084H29.9166C29.3889 11.6806 28.4378 9.86782 27.0633 8.27004C25.6878 6.67337 24 5.47226 22 4.66671V5.33337C22 6.25004 21.6739 7.03449 21.0216 7.68671C20.3683 8.34004 19.5833 8.66671 18.6666 8.66671H15.3333V12C15.3333 12.4723 15.1739 12.8678 14.855 13.1867C14.535 13.5067 14.1389 13.6667 13.6666 13.6667H10.3333V17H13.6666V22H12L3.99998 14C3.91665 14.5 3.83998 15 3.76998 15.5C3.70109 16 3.66665 16.5 3.66665 17C3.66665 20.6389 4.94442 23.7639 7.49998 26.375C10.0555 28.9862 13.2222 30.3056 17 30.3334V33.6667ZM32.1666 32.8334L26.8333 27.5C26.25 27.8334 25.625 28.1112 24.9583 28.3334C24.2916 28.5556 23.5833 28.6667 22.8333 28.6667C20.75 28.6667 18.9789 27.9378 17.52 26.48C16.0622 25.0212 15.3333 23.25 15.3333 21.1667C15.3333 19.0834 16.0622 17.3123 17.52 15.8534C18.9789 14.3956 20.75 13.6667 22.8333 13.6667C24.9166 13.6667 26.6878 14.3956 28.1466 15.8534C29.6044 17.3123 30.3333 19.0834 30.3333 21.1667C30.3333 21.9167 30.2222 22.625 30 23.2917C29.7778 23.9584 29.5 24.5834 29.1666 25.1667L34.5 30.5L32.1666 32.8334ZM22.8333 25.3334C24 25.3334 24.9861 24.9306 25.7916 24.125C26.5972 23.3195 27 22.3334 27 21.1667C27 20 26.5972 19.0139 25.7916 18.2084C24.9861 17.4028 24 17 22.8333 17C21.6666 17 20.6805 17.4028 19.875 18.2084C19.0694 19.0139 18.6666 20 18.6666 21.1667C18.6666 22.3334 19.0694 23.3195 19.875 24.125C20.6805 24.9306 21.6666 25.3334 22.8333 25.3334Z fill#F5F5F5>/path> /svg> /div> div classvir-bgwhite-infocard flex flex-col justify-start items-start text-left> h3>Global/h3> span>Viaja a miles de destinos en todo el mundo/span> /div> /div> /div> /div> /div> div data-test-idpartners-wrapper classflex flex-col my-8 md:my-10 gap-6 lg:gap-8 mx-auto virail-container-lgmax justify-between lg:flex-row> div classflex text-center flex-col items-center justify-center content-center lg:text-left lg:content-start lg:items-start lg:justify-start lg:max-w-lg> h2 classvir-h2>Nuestros socios/h2> p classtext-virail-gray-600 text-sm font-normal md:leading-29px md:text-base font-sans mt-2 lg:mt-6 lg:max-w-md xl:max-w-lg 2xl:max-w-xl 4xl:max-w-2xl>La mejor manera de encontrar y comparar entradas para trenes, autobuses, carpools y aviones. Trabajamos con más de 100 socios para ofrecerle los mejores precios en el mercado./p> /div> div data-test-idpartners-wrapper__container classgrid grid-cols-4 grid-rows-2 items-center content-center justify-center self-center gap-4 lg:px-4 lg:gap-x-6 md:grid-cols-5> img loadinglazy src/assets/img/references/flixbus.png width96px classobject-contain w-16 h-8 xs:w-24 xs:h-12 block altreferences width200 height100>img loadinglazy src/assets/img/references/trenitalia.png width96px classobject-contain w-16 h-8 xs:w-24 xs:h-12 block altreferences width200 height100>img loadinglazy src/assets/img/references/ouisncf.png width96px classobject-contain w-16 h-8 xs:w-24 xs:h-12 block altreferences width200 height100>img loadinglazy src/assets/img/references/deutsche-bahn.png width96px classobject-contain w-16 h-8 xs:w-24 xs:h-12 block altreferences width200 height100>img loadinglazy src/assets/img/references/blablacar.png width96px classobject-contain w-16 h-8 xs:w-24 xs:h-12 block altreferences width200 height100>img loadinglazy src/assets/img/references/kayak.png width96px classobject-contain w-16 h-8 xs:w-24 xs:h-12 block altreferences width200 height100>img loadinglazy src/assets/img/references/sbb.png width96px classobject-contain w-16 h-8 xs:w-24 xs:h-12 block altreferences width200 height100>img loadinglazy src/assets/img/references/busbud.png width96px classobject-contain w-16 h-8 xs:w-24 xs:h-12 block altreferences width200 height100>img loadinglazy src/assets/img/references/kiwi.svg width96px classobject-contain w-16 h-8 xs:w-24 xs:h-12 hidden md:block altreferences width200 height100>img loadinglazy src/assets/img/references/omio.png width96px classobject-contain w-16 h-8 xs:w-24 xs:h-12 hidden md:block altreferences width200 height100> /div> /div> section> div classmx-auto w-full mt-8 md:mt-10 virail-container-lgmax> div> h4 classtext-virail-gray-800 border-gray-100 border-b-2 leading-7 md:leading-29px pb-2 md:pb-4 w-full text-base font-sans text-left mb-4 md:mb-6 font-medium>Principales rutas de tren/h4> div> div data-test-idroute-list-train> div classgrid gap-x-8 grid-cols-1 sm:grid-cols-2 md:grid-cols-2 lg:grid-cols-3 w-full> div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-madrid-zaragoza>Tren Madrid - Zaragoza/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-madrid-malaga>Tren Madrid - Málaga/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-madrid-murcia>Tren Madrid - Murcia/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-madrid-bilbao>Tren Madrid - Bilbao/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-madrid-alicante>Tren Madrid - Alicante/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-madrid-cordoba>Tren Madrid - Córdoba/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-madrid-valladolid>Tren Madrid - Valladolid/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-madrid-vigo>Tren Madrid - Vigo/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-madrid-gijon>Tren Madrid - Gijón/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-madrid-l_hospitalet_de_llobregat>Tren Madrid - L'Hospitalet de Llobregat/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-madrid-a_coruna>Tren Madrid - A Coruña/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-madrid-gasteiz_vitoria>Tren Madrid - Gasteiz / Vitoria/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-madrid-granada>Tren Madrid - Granada/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-madrid-elche>Tren Madrid - Elche/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-madrid-oviedo>Tren Madrid - Oviedo/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-madrid-cartagena>Tren Madrid - Cartagena/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-madrid-jerez_de_la_frontera>Tren Madrid - Jerez de la Frontera/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-madrid-sabadell>Tren Madrid - Sabadell/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-madrid-alcala_de_henares>Tren Madrid - Alcalá de Henares/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-madrid-pamplona>Tren Madrid - Pamplona/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-madrid-fuenlabrada>Tren Madrid - Fuenlabrada/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-madrid-almeria>Tren Madrid - Almería/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-madrid-leganes>Tren Madrid - Leganés/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-madrid-santander>Tren Madrid - Santander/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-barcelona-zaragoza>Tren Barcelona - Zaragoza/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-barcelona-malaga>Tren Barcelona - Málaga/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-barcelona-murcia>Tren Barcelona - Murcia/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-barcelona-bilbao>Tren Barcelona - Bilbao/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-barcelona-alicante>Tren Barcelona - Alicante/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-barcelona-cordoba>Tren Barcelona - Córdoba/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-barcelona-valladolid>Tren Barcelona - Valladolid/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-barcelona-vigo>Tren Barcelona - Vigo/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-barcelona-gijon>Tren Barcelona - Gijón/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-barcelona-l_hospitalet_de_llobregat>Tren Barcelona - L'Hospitalet de Llobregat/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-barcelona-a_coruna>Tren Barcelona - A Coruña/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-barcelona-gasteiz_vitoria>Tren Barcelona - Gasteiz / Vitoria/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-barcelona-granada>Tren Barcelona - Granada/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-barcelona-elche>Tren Barcelona - Elche/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-barcelona-oviedo>Tren Barcelona - Oviedo/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-barcelona-badalona>Tren Barcelona - Badalona/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-barcelona-cartagena>Tren Barcelona - Cartagena/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-barcelona-terrassa>Tren Barcelona - Terrassa/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-barcelona-jerez_de_la_frontera>Tren Barcelona - Jerez de la Frontera/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-barcelona-sabadell>Tren Barcelona - Sabadell/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-barcelona-alcala_de_henares>Tren Barcelona - Alcalá de Henares/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-barcelona-pamplona>Tren Barcelona - Pamplona/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-barcelona-almeria>Tren Barcelona - Almería/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-barcelona-leganes>Tren Barcelona - Leganés/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-valencia-zaragoza>Tren Valencia - Zaragoza/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-valencia-malaga>Tren Valencia - Málaga/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-madrid-san_sebastian_donostia>Tren Madrid - San Sebastián / Donostia/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/trenes-barcelona-san_sebastian_donostia>Tren Barcelona - San Sebastián / Donostia/a> /div> /div> /div> /div> h4 classtext-virail-gray-800 border-gray-100 border-b-2 leading-7 md:leading-29px pb-2 md:pb-4 w-full text-base font-sans text-left mb-4 md:mb-6 mt-8 md:mt-10 font-medium>Principales rutas de autobús/h4> div> div data-test-idroute-list-bus> div classgrid gap-x-8 grid-cols-1 sm:grid-cols-2 md:grid-cols-2 lg:grid-cols-3 w-full> div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-barcelona-vigo>Autobús Barcelona - Vigo/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-madrid-zaragoza>Autobús Madrid - Zaragoza/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-madrid-malaga>Autobús Madrid - Málaga/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-madrid-murcia>Autobús Madrid - Murcia/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-madrid-bilbao>Autobús Madrid - Bilbao/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-madrid-alicante>Autobús Madrid - Alicante/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-madrid-cordoba>Autobús Madrid - Córdoba/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-madrid-valladolid>Autobús Madrid - Valladolid/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-madrid-vigo>Autobús Madrid - Vigo/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-madrid-gijon>Autobús Madrid - Gijón/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-madrid-a_coruna>Autobús Madrid - A Coruña/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-madrid-gasteiz_vitoria>Autobús Madrid - Gasteiz / Vitoria/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-madrid-granada>Autobús Madrid - Granada/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-madrid-elche>Autobús Madrid - Elche/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-madrid-oviedo>Autobús Madrid - Oviedo/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-madrid-cartagena>Autobús Madrid - Cartagena/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-madrid-jerez_de_la_frontera>Autobús Madrid - Jerez de la Frontera/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-madrid-pamplona>Autobús Madrid - Pamplona/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-madrid-almeria>Autobús Madrid - Almería/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-madrid-santander>Autobús Madrid - Santander/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-madrid-burgos>Autobús Madrid - Burgos/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-madrid-salamanca>Autobús Madrid - Salamanca/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-madrid-logrono>Autobús Madrid - Logroño/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-madrid-huelva>Autobús Madrid - Huelva/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-madrid-badajoz>Autobús Madrid - Badajoz/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-barcelona-zaragoza>Autobús Barcelona - Zaragoza/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-barcelona-malaga>Autobús Barcelona - Málaga/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-barcelona-murcia>Autobús Barcelona - Murcia/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-barcelona-bilbao>Autobús Barcelona - Bilbao/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-barcelona-alicante>Autobús Barcelona - Alicante/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-barcelona-cordoba>Autobús Barcelona - Córdoba/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-barcelona-valladolid>Autobús Barcelona - Valladolid/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-barcelona-gijon>Autobús Barcelona - Gijón/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-barcelona-a_coruna>Autobús Barcelona - A Coruña/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-barcelona-gasteiz_vitoria>Autobús Barcelona - Gasteiz / Vitoria/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-barcelona-granada>Autobús Barcelona - Granada/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-barcelona-elche>Autobús Barcelona - Elche/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-barcelona-oviedo>Autobús Barcelona - Oviedo/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-barcelona-terrassa>Autobús Barcelona - Terrassa/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-barcelona-sabadell>Autobús Barcelona - Sabadell/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-barcelona-alcala_de_henares>Autobús Barcelona - Alcalá de Henares/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-barcelona-pamplona>Autobús Barcelona - Pamplona/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-barcelona-almeria>Autobús Barcelona - Almería/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-barcelona-santander>Autobús Barcelona - Santander/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-barcelona-burgos>Autobús Barcelona - Burgos/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-barcelona-albacete>Autobús Barcelona - Albacete/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-barcelona-salamanca>Autobús Barcelona - Salamanca/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-barcelona-logrono>Autobús Barcelona - Logroño/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-valencia-malaga>Autobús Valencia - Málaga/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-valencia-murcia>Autobús Valencia - Murcia/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-madrid-san_sebastian_donostia>Autobús Madrid - San Sebastián / Donostia/a> /div>div classmb-3 last-of-type:mb-0 mt-0 text-base leading-5 font-normal text-virail-500> a href/bus-barcelona-san_sebastian_donostia>Autobús Barcelona - San Sebastián / Donostia/a> /div> /div> /div> /div> /div> /div> /section> hr> section> div classmx-auto flex flex-col md:flex-row w-full mt-10 space-y-12 md:space-y-0 space-x-0 gap-0 md:gap-6 lg:gap-8 virail-container-lgmax> div classw-full md:flex-1> div classw-full> div classvir-bgless-infocard flex flex-col text-justify>p styletext-align: center;>b>¿Qué es virail? /b>/p>p styletext-align: justify;>virail compara por ti todos los medios de transporte disponibles para tu viaje. Elige el lugar desde el que quieres salir y tu destino y nuestro metabuscador hará el resto para mostrarte las mejores opciones disponibles de autobuses, trenes, aviones y coches compartidos. Podrás filtrar los resultados de tu búsqueda por precio, horario de salida y llegada o por duración del trayecto. De esta manera, conseguirás el billete más barato para tu viaje./p>p styletext-align: justify;>Nuestro comparador obtiene resultados de más de 200 compañías ferroviarias, de autobuses, aerolíneas y de coches para compartir ofreciéndote tu solución de viaje en más de 48.000 ciudades de España, Europa y del resto del mundo. Solo así podrás viajar a un gran número de destinos que no cuentan con aeropuerto y que están conectados con otras ciudades por tren, bus o por algún usuario que comparte coche en Blablacar./p>/div> /div> /div> div classw-full md:flex-1> div classw-full> div classvir-bgless-infocard flex flex-col text-justify>p styletext-align: center;>b>Comprar billetes de forma segura en la web del proveedor/b>/p>p styletext-align: justify;>A través de virail es sencillo y seguro comprar billetes de empresas ferroviarias como Renfe, Deutsche Bahn, Trenitalia o SNFC entre otras. Además, tendrás acceso a trenes de alta velocidad como AVE, Italo, ICE o TGV. Si necesitas un billete de autobús, entonces podrás seleccionar entre un gran número de firmas internacionales como Alsa, Flixbus, Baltour o Eurolines o más locales como Buscenter./p>p styletext-align: justify;>Si lo que buscas son vuelos, con virail puedes adquirir pasajes baratos de Iberia, British Airways, Air France o Lufthansa o de compañías low cost como Ryanair, Vueling o EasyJet, entre otras./p>p styletext-align: justify;>Elige la opción que mejor se adapte a tus necesidades y te redirigiremos directamente a la página web del proveedor, donde podrás comprar de manera segura tu billete al mejor precio. Con virail puedes comparar todas las opciones de transporte y reservar en unos pocos clics tu próximo viaje de vacaciones o de negocios. ¡Te deseamos una buena búsqueda!/p>/div> /div> /div> /div> /section> div classvirail-container-lgmax w-full mx-auto py-8 flex flex-col visibility-auto md:py-10> div classflex flex-col px-2 items-center space-y-5 rounded-lg lg:rounded-none lg:mb-0> h3 classvir-h2 text-center>Suscríbete a nuestro Newsletter/h3> p classtext-virail-gray-500 text-center text-base leading-29px font-normal>Reciba las últimas noticias, actualizaciones de productos y promociones exclusivas directamente en su bandeja de entrada/p> button x-data{} @click() > { const event new CustomEvent(open-login-modal); window.dispatchEvent(event) } classinline-flex w-max bg-white px-4 py-2 rounded-lg drop-shadow-lg cursor-pointer> div classflex justify-center gap-4 items-center> span> svg width24 height23 viewBox0 0 24 23 fillnone xmlnshttp://www.w3.org/2000/svg> path fill-ruleevenodd clip-ruleevenodd dM23.04 11.7614C23.04 10.9459 22.9668 10.1618 22.8309 9.40912H12V13.8575H18.1891C17.9225 15.295 17.1123 16.513 15.8943 17.3284V20.2139H19.6109C21.7855 18.2118 23.04 15.2637 23.04 11.7614Z fill#4285F4>/path> path fill-ruleevenodd clip-ruleevenodd dM12 22.9998C15.105 22.9998 17.7081 21.97 19.6109 20.2137L15.8943 17.3282C14.8645 18.0182 13.5472 18.4259 12 18.4259C9.00474 18.4259 6.46951 16.403 5.56519 13.6848H1.72314V16.6644C3.61542 20.4228 7.50451 22.9998 12 22.9998Z fill#34A853>/path> path fill-ruleevenodd clip-ruleevenodd dM5.56523 13.6851C5.33523 12.9951 5.20455 12.258 5.20455 11.5001C5.20455 10.7421 5.33523 10.0051 5.56523 9.31506V6.33551H1.72318C0.944318 7.88801 0.5 9.64437 0.5 11.5001C0.5 13.3557 0.944318 15.1121 1.72318 16.6646L5.56523 13.6851Z fill#FBBC05>/path> path fill-ruleevenodd clip-ruleevenodd dM12 4.57386C13.6884 4.57386 15.2043 5.15409 16.3961 6.29364L19.6945 2.99523C17.7029 1.13955 15.0997 0 12 0C7.50451 0 3.61542 2.57705 1.72314 6.33545L5.56519 9.315C6.46951 6.59682 9.00474 4.57386 12 4.57386Z fill#EA4335>/path> /svg> /span> span classtext-xl text-virail-gray-600 leading-9 lg:hidden>Inicia sesión con Google/span> span classhidden text-xl text-virail-gray-600 leading-9 lg:flex>Iniciar sesión con Google para suscribirse/span> /div> /button> /div> /div> div classbg-virail-gray-50 font-sans>div data-test-idfooterlinks-wrapper classvirail-container-lgmax mx-auto flex flex-col lg:flex-row items-start justify-between gap-6 pt-8 pb-8 lg:pt-14 lg:pb-14 lg:gap-0>div>div classinline-flex flex-row gap-3 justify-center items-center>svg classtext-virail-gray-800 width24 height24 viewBox0 0 24 24 fillnone xmlnshttp://www.w3.org/2000/svg> g clip-pathurl(#clip0_6_23)> path fill-ruleevenodd clip-ruleevenodd dM11.152 2.01104C9.10091 2.28869 7.46299 3.0401 6.1027 4.32743C5.04668 5.32682 4.34051 6.54517 3.97267 8.00246C3.85352 8.47446 3.85178 8.5346 3.85178 12.2347V15.988L3.99839 16.3607C4.50733 17.6543 5.68147 18.5004 7.17501 18.6498L7.55637 18.688L5.27816 20.3309L3 21.9738L4.42567 21.9869L5.85133 22L8.168 20.331L10.4848 18.662H12.1599H13.835L16.1517 20.331L18.4683 22L19.9009 21.9869L21.3333 21.9738L19.0513 20.3301L16.7694 18.6866L17.1478 18.6491C18.4297 18.5223 19.5197 17.8561 20.0727 16.8611C20.5123 16.0701 20.5029 16.1806 20.4824 12.0867C20.4649 8.57396 20.4613 8.46886 20.3438 7.99849C19.9822 6.5511 19.294 5.36042 18.231 4.34353C17.0357 3.19985 15.6493 2.49343 13.876 2.12418C13.4947 2.04474 13.1556 2.0184 12.3506 2.0055C11.7812 1.99637 11.2419 1.99888 11.152 2.01104ZM8.67319 5.97902L9.38278 6.93577H12.1599H14.9369L15.6466 5.97902C16.0368 5.45281 16.3778 5.02228 16.4042 5.02228C16.5006 5.02228 17.3059 5.84218 17.5987 6.23828L17.899 6.64472L17.7719 6.97423C17.2097 8.43236 16.4219 9.66028 15.4903 10.5304C14.4162 11.5339 13.3767 11.9893 12.1599 11.9893C11.2502 11.9893 10.3668 11.7009 9.55886 11.14C8.33722 10.2921 7.25276 8.7914 6.54844 6.97423L6.42069 6.64472L6.72109 6.23828C7.01387 5.84218 7.81918 5.02228 7.91544 5.02228C7.94191 5.02228 8.2829 5.45281 8.67319 5.97902ZM8 14.0833V15.3333L18.7098 15.3257L16.2083 15.3333V14.0833L18.7098 13.25V15.3257L8 15.3333H5.5V13.25L8 14.0833Z fillcurrentColor>/path> /g>defs> clipPath idclip0_6_23> rect width24 height24 fillwhite>/rect> /clipPath> /defs> /svg>span classfont-medium leading-8 text-virail-gray-800>Trenes/span>/div>div classmt-4 flex flex-col lg:w-20rem 2xl:w-24.25rem>a classfont-normal text-base leading-8 text-virail-gray-800 hover:pointer-events-auto hrefhttps://www.virail.es/trenes-alicante-madrid>Tren de Alicante a Madrid/a>a classfont-normal text-base leading-8 text-virail-gray-800 hover:pointer-events-auto hrefhttps://www.virail.es/trenes-madrid-marbella>Tren de Madrid a Marbella/a>a classfont-normal text-base leading-8 text-virail-gray-800 hover:pointer-events-auto hrefhttps://www.virail.es/trenes-sevilla-cadiz>Tren de Sevilla a Cádiz/a>a classfont-normal text-base leading-8 text-virail-gray-800 hover:pointer-events-auto hrefhttps://www.virail.es/trenes-lleida-barcelona>Tren de Lleida a Barcelona/a>a classfont-normal text-base leading-8 text-virail-gray-800 hover:pointer-events-auto hrefhttps://www.virail.es/trenes-tarragona-barcelona>Tren de Tarragona a Barcelona/a>a classfont-normal text-base leading-8 text-virail-gray-800 hover:pointer-events-auto hrefhttps://www.virail.es/trenes-salamanca-madrid>Tren de Salamanca a Madrid/a>a classfont-normal text-base leading-8 text-virail-gray-800 hover:pointer-events-auto hrefhttps://www.virail.es/trenes-valencia-alicante>Tren de Valencia a Alicante/a>a classfont-normal text-base leading-8 text-virail-gray-800 hover:pointer-events-auto hrefhttps://www.virail.es/trenes-madrid-salamanca>Tren de Madrid a Salamanca/a>a classfont-normal text-base leading-8 text-virail-gray-800 hover:pointer-events-auto hrefhttps://www.virail.es/trenes-barcelona-lleida>Tren de Barcelona a Lleida/a>a classfont-normal text-base leading-8 text-virail-gray-800 hover:pointer-events-auto hrefhttps://www.virail.es/trenes-alicante-barcelona>Tren de Alicante a Barcelona/a>a classfont-normal text-base leading-8 text-virail-gray-800 hover:pointer-events-auto hrefhttps://www.virail.es/trenes-barcelona-girona>Tren de Barcelona a Girona/a>a classfont-normal text-base leading-8 text-virail-gray-800 hover:pointer-events-auto hrefhttps://www.virail.es/trenes-vigo-madrid>Tren de Vigo a Madrid/a>a classfont-normal text-base leading-8 text-virail-gray-800 hover:pointer-events-auto hrefhttps://www.virail.es/trenes-roma-florencia>Tren de Roma a Florencia/a>a classfont-normal text-base leading-8 text-virail-gray-800 hover:pointer-events-auto hrefhttps://www.virail.es/trenes-sevilla-malaga>Tren de Sevilla a Málaga/a>a classfont-normal text-base leading-8 text-virail-gray-800 hover:pointer-events-auto hrefhttps://www.virail.es/trenes-a_coruna-vigo>Tren de A coruña a Vigo/a>a classfont-normal text-base leading-8 text-virail-gray-800 hover:pointer-events-auto hrefhttps://www.virail.es/trenes-alicante-valencia>Tren de Alicante a Valencia/a>a classfont-normal text-base leading-8 text-virail-gray-800 hover:pointer-events-auto hrefhttps://www.virail.es/trenes-barcelona-valencia>Tren de Barcelona a Valencia/a>a classfont-normal text-base leading-8 text-virail-gray-800 hover:pointer-events-auto hrefhttps://www.virail.es/trenes-madrid-gandia>Tren de Madrid a Gandía/a>a classfont-normal text-base leading-8 text-virail-gray-800 hover:pointer-events-auto hrefhttps://www.virail.es/trenes-madrid-alicante>Tren de Madrid a Alicante/a>a classfont-normal text-base leading-8 text-virail-gray-800 hover:pointer-events-auto hrefhttps://www.virail.es/trenes-barcelona-cordoba>Tren de Barcelona a Córdoba/a>/div>/div>div>div classinline-flex flex-row gap-3 justify-center items-center>svg classtext-virail-gray-800 width24 height24 viewBox0 0 24 24 fillnone xmlnshttp://www.w3.org/2000/svg> rect width24 height24 fillnone>/rect>path fill-ruleevenodd clip-ruleevenodd dM6.77233 4.05319H17.232C17.871 4.05319 18.3898 4.57211 18.3898 5.21055V11.5789C18.3898 11.8962 18.1282 12.1577 17.8108 12.1577H6.19335C5.87167 12.1577 5.61432 11.8962 5.61432 11.5789V5.21055C5.61432 4.57211 6.1333 4.05319 6.77233 4.05319ZM17.232 14.4135C17.871 14.4135 18.3898 14.9281 18.3898 15.5714C18.3898 16.2105 17.871 16.7294 17.232 16.7294C16.5929 16.7294 16.0741 16.2105 16.0741 15.5714C16.0741 14.9281 16.5929 14.4135 17.232 14.4135ZM6.77233 14.4135C7.41134 14.4135 7.93022 14.9281 7.93022 15.5714C7.93022 16.2105 7.41134 16.7294 6.77233 16.7294C6.1333 16.7294 5.61432 16.2105 5.61432 15.5714C5.61432 14.9281 6.1333 14.4135 6.77233 14.4135ZM4.47355 19.6841H7.94734V20.842C7.94734 21.4767 7.42848 22 6.78945 22H5.63144C4.99674 22 4.47355 21.4767 4.47355 20.842V19.6841ZM16.0527 19.6841H19.5263V20.842C19.5263 21.4767 19.0073 22 18.3684 22H17.2105C16.5758 22 16.0527 21.4767 16.0527 20.842V19.6841ZM21.2631 6.36791H22.421C22.7427 6.36791 23 6.62964 23 6.94734V9.84196C23 10.1594 22.7427 10.4209 22.421 10.4209C22.1036 10.4209 21.8422 10.1594 21.8422 9.84196V7.52678H21.2631V6.36791ZM2.73669 7.52678H2.15789V9.84196C2.15789 10.1594 1.90052 10.4209 1.57885 10.4209C1.2615 10.4209 1 10.1594 1 9.84196V6.94734C1 6.62964 1.2615 6.36791 1.57885 6.36791H2.73669V7.52678ZM5.58003 1.75813H18.4241C19.6978 1.75813 20.7399 2.80051 20.7399 4.07436V17.9087C20.7399 18.5434 20.2166 19.0665 19.5821 19.0665H4.4222C3.7875 19.0665 3.26431 18.5434 3.26431 17.9087V4.07436C3.26431 2.80051 4.30632 1.75813 5.58003 1.75813Z fillcurrentColor>/path> /svg>span classfont-medium leading-8 text-virail-gray-800>Autobús/span>/div>div classmt-4 flex flex-col w-full lg:w-20rem 2xl:w-24.25rem>a classfont-normal text-base leading-8 text-virail-gray-800 hover:pointer-events-auto hrefhttps://www.virail.es/bus-madrid-malaga>Bus de Madrid a Málaga/a>a classfont-normal text-base leading-8 text-virail-gray-800 hover:pointer-events-auto hrefhttps://www.virail.es/bus-valencia-madrid>Bus de Valencia a Madrid/a>a classfont-normal text-base leading-8 text-virail-gray-800 hover:pointer-events-auto hrefhttps://www.virail.es/bus-salamanca-madrid>Bus de Salamanca a Madrid/a>a classfont-normal text-base leading-8 text-virail-gray-800 hover:pointer-events-auto hrefhttps://www.virail.es/bus-talavera_de_la_reina-madrid>Bus de Talavera de la reina a Madrid/a>a classfont-normal text-base leading-8 text-virail-gray-800 hover:pointer-events-auto hrefhttps://www.virail.es/bus-madrid-gandia>Bus de Madrid a Gandía/a>a classfont-normal text-base leading-8 text-virail-gray-800 hover:pointer-events-auto hrefhttps://www.virail.es/bus-zaragoza-huesca>Bus de Zaragoza a Huesca/a>a classfont-normal text-base leading-8 text-virail-gray-800 hover:pointer-events-auto hrefhttps://www.virail.es/bus-madrid-granada>Bus de Madrid a Granada/a>a classfont-normal text-base leading-8 text-virail-gray-800 hover:pointer-events-auto hrefhttps://www.virail.es/bus-madrid-sevilla>Bus de Madrid a Sevilla/a>a classfont-normal text-base leading-8 text-virail-gray-800 hover:pointer-events-auto hrefhttps://www.virail.es/bus-madrid-avila>Bus de Madrid a Ávila/a>a classfont-normal text-base leading-8 text-virail-gray-800 hover:pointer-events-auto hrefhttps://www.virail.es/bus-granada-malaga>Bus de Granada a Málaga/a>a classfont-normal text-base leading-8 text-virail-gray-800 hover:pointer-events-auto hrefhttps://www.virail.es/bus-malaga-granada>Bus de Málaga a Granada/a>a classfont-normal text-base leading-8 text-virail-gray-800 hover:pointer-events-auto hrefhttps://www.virail.es/bus-madrid-salamanca>Bus de Madrid a Salamanca/a>a classfont-normal text-base leading-8 text-virail-gray-800 hover:pointer-events-auto hrefhttps://www.virail.es/bus-madrid-alicante>Bus de Madrid a Alicante/a>a classfont-normal text-base leading-8 text-virail-gray-800 hover:pointer-events-auto hrefhttps://www.virail.es/bus-malaga-marbella>Bus de Málaga a Marbella/a>a classfont-normal text-base leading-8 text-virail-gray-800 hover:pointer-events-auto hrefhttps://www.virail.es/bus-sevilla-madrid>Bus de Sevilla a Madrid/a>a classfont-normal text-base leading-8 text-virail-gray-800 hover:pointer-events-auto hrefhttps://www.virail.es/bus-sevilla-cadiz>Bus de Sevilla a Cádiz/a>a classfont-normal text-base leading-8 text-virail-gray-800 hover:pointer-events-auto hrefhttps://www.virail.es/bus-madrid-valencia>Bus de Madrid a Valencia/a>a classfont-normal text-base leading-8 text-virail-gray-800 hover:pointer-events-auto hrefhttps://www.virail.es/bus-madrid-talavera_de_la_reina>Bus de Madrid a Talavera de la reina/a>a classfont-normal text-base leading-8 text-virail-gray-800 hover:pointer-events-auto hrefhttps://www.virail.es/bus-malaga-madrid>Bus de Málaga a Madrid/a>a classfont-normal text-base leading-8 text-virail-gray-800 hover:pointer-events-auto hrefhttps://www.virail.es/bus-marbella-malaga>Bus de Marbella a Málaga/a>/div>/div>/div>/div> footer> div classbg-virail-500 text-white font-sans> div classvirail-container-lgmax mx-auto justify-between pt-8 flex flex-col lg:flex-row lg:gap-8> div classflex flex-col justify-start items-start> a href/ classinline-flex mt-0 aria-labelHome> svg height56 version1.1 idlogo xmlnshttp://www.w3.org/2000/svg x0 y0 viewBox0 0 426 144 xml:spacepreserve classh-10 lg:h-14> style>.st0{fill:#fff}/style>g idPage-1>g idvirail_logo>g idLogo>circle idOval classst0 cx72 cy72 r72>/circle>linearGradient idPath_2_ gradientUnitsuserSpaceOnUse x11.036 y1144.689 x22.036 y2144.381 gradientTransformmatrix(-32.784 0 0 -59.0822 135.766 8612.92)>stop offset0 stop-color#0d9e91>/stop>stop offset1 stop-color#09655d>/stop>/linearGradient>path idPath dM102 45L90.3 80.7s-1.3 4.1-3.5 10.1c-1.7 4.7-4.2 10.9-8.4 13.3-1.1.6-3.2-1.9-3.2-1.9s-6.2-1.2-6-1.5c.4-.6.9-1.3 1.3-2.1 1.3-2.4 3.3-7.8 5.2-13.4 4.4-13.3 13.2-40 13.2-40H102z fillurl(#Path_2_)>/path>path idPath_1_ dM42 45l11.8 35.9S55.1 85 57.3 91c2.1 6 4.8 14 11.8 14 2.2 0 6.5.4 9.4-1 0 0-2.5-.9-4.8-5.3-1.3-2.4-3.3-7.8-5.2-13.4L55.1 45H42z fill#48d5b5>/path>/g>path idCombined-Shape classst0 dM213.4 105.5c4.2-2.3 6.7-8.5 8.4-13.2 2.1-6 3.5-10.1 3.5-10.1L237 46.5h-13.1s-8.8 26.7-13.2 40c-1.3 3.8-2.6 7.4-3.7 10.2-1.1-2.7-2.4-6.3-3.6-9.9l-13.2-40.3H177l11.8 35.9s1.3 4.1 3.5 10.1c2.1 6 4.8 14 11.8 14 2.1 0 6.5.4 9.3-1zm35.7-69.4c-2.4 0-4.5-.8-6.2-2.5-1.7-1.6-2.6-3.7-2.6-6.2 0-2.4.9-4.5 2.6-6.2 1.6-1.6 3.7-2.5 6.2-2.5 3.8 0 6.5 1.7 8 5.2.5 1 .7 2.2.7 3.4 0 2.5-.9 4.6-2.6 6.2-1.7 1.8-3.7 2.6-6.1 2.6zm6.2 55.9c0 2.5.8 3.8 2.5 3.8.6 0 1.2-.2 1.9-.5 1.4-.6 2.3-.9 2.8-.9.7 0 1.4.5 1.8 1.5l1.7 3.7c.3.6.4 1.2.4 1.7 0 1.5-1.3 3-4 4.3-2.5 1.3-5 1.9-7.4 1.9-2.4 0-4.4-.3-5.8-.8-1.5-.5-2.7-1.4-3.7-2.7-2.1-2.6-3.1-6.7-3.1-12.5V50c0-1 .3-1.8.9-2.5.6-.7 1.2-1 2-1h7.2c.8 0 1.5.3 2 1s.8 1.5.8 2.5v42zm16.3-41.7c0-2.6 1.1-3.8 3.4-3.8h2.9c2 0 3.3.9 4.2 2.6 1.2 2.5 2 5.9 2.6 10.3 0 .1 0 .1.1.1s.2-.6.3-1.8.7-2.7 1.5-4.5c.9-1.8 1.9-3.2 3.2-4.5 2.5-2.4 5.6-3.6 9.3-3.6 4.1 0 6.9.7 8.5 2 .7.6 1.1 1.4.9 2.5l-.9 6.7c-.2 1.8-1.1 2.7-2.8 2.7-.8 0-1.7-.2-2.9-.5-2.2-.6-4-.9-5.2-.9s-2.6.6-4.1 1.7c-1.4 1.1-2.7 2.5-3.7 4.2-2.1 3.5-3.2 7.2-3.2 11.2v28.4c0 1-.3 1.8-.9 2.5-.6.7-1.4 1-2.5 1h-6.2c-1.1 0-2-.3-2.6-1-.6-.7-.9-1.5-.9-2.5V66.4c0-6.3-.2-10.4-.6-12.4-.2-2.1-.4-3.3-.4-3.7zm89.2 53.5c0 1.9-.9 2.8-2.8 2.8h-5.2c-1.4 0-2.2-.3-2.5-.8-.3-.6-.4-1.1-.5-1.5 0-.4-.1-1-.2-1.6-.2-1.7-.5-3.6-.9-5.7-2.8 5.1-7.1 8.5-13.1 10.1-2.1.6-4.4.9-6.9.9s-5.1-.4-7.6-1.3c-2.5-.8-4.8-2.1-6.7-3.7-4.4-3.7-6.6-8.6-6.6-14.6 0-6.6 2.4-11.6 7.3-15.1 4-2.8 9.1-4.2 15.4-4.2s11.6 1.8 15.9 5.5c.1-1.2.2-2.7.2-4.5 0-1.8-.4-3.6-1.1-5.4-.7-1.8-1.7-3.3-3-4.5-2.7-2.4-6.5-3.6-11.3-3.6-4.3 0-8.8 1.2-13.2 3.6-.9.5-1.6.7-2.2.7-1 0-1.9-.9-2.8-2.8-1-1.9-1.4-3.3-1.4-4.2 0-1.6 1.2-3.1 3.5-4.5 4.5-2.8 10.5-4.2 18-4.2 6.8 0 12.5 1.9 17 5.6 5.3 4.5 8 10.8 8 19 0 3.6-.6 8.2-1.8 13.7 2.8 8.6 4.4 15.4 4.5 20.3zm-38.9-19.4c-.6 1.1-.9 2.3-.9 3.8s.3 2.7.8 3.8c.5 1.1 1.2 2.1 2.2 2.8 2 1.5 4.2 2.3 6.6 2.3 2.4 0 4.4-.3 6-.9s2.9-1.3 4.1-2.2c2.5-1.9 3.7-4 3.7-6.1-.2-2.7-1.7-4.8-4.4-6.3-2.5-1.4-5.4-2.1-8.7-2.1-2.6 0-4.6.5-6.1 1.6-1.6 1.2-2.6 2.2-3.3 3.3zm54.8-48.3c-2.4 0-4.5-.8-6.2-2.5-1.7-1.6-2.6-3.7-2.6-6.2 0-2.4.9-4.5 2.6-6.2 1.6-1.6 3.7-2.5 6.2-2.5 3.8 0 6.5 1.7 8 5.2.5 1 .7 2.2.7 3.4 0 2.5-.9 4.6-2.6 6.2-1.7 1.8-3.8 2.6-6.1 2.6zm6.2 55.9c0 2.5.8 3.8 2.5 3.8.6 0 1.2-.2 1.9-.5 1.4-.6 2.3-.9 2.8-.9.7 0 1.4.5 1.8 1.5l1.7 3.7c.3.6.4 1.2.4 1.7 0 1.5-1.3 3-4 4.3-2.5 1.3-5 1.9-7.4 1.9-2.4 0-4.4-.3-5.8-.8-1.5-.5-2.7-1.4-3.7-2.7-2.1-2.6-3.1-6.7-3.1-12.5V50c0-1 .3-1.8.9-2.5.6-.7 1.2-1 2-1h7.2c.8 0 1.5.3 2 1s.8 1.5.8 2.5v42zm30.7 0c0 2.5.9 3.8 2.7 3.8.6 0 1.3-.2 2.2-.5 1.6-.6 2.6-.9 3-.9.8 0 1.5.5 1.9 1.5l1.7 3.8c.2.5.3 1 .3 1.5 0 .8-.7 1.8-2 3-2.7 2.2-6.2 3.4-10.6 3.4-8 0-12-5.3-12-16V15.5c0-1 .3-1.8.9-2.5s1.2-1 2-1h7.2c.8 0 1.5.3 2 1s.8 1.5.8 2.5V92z>/path>/g>/g> /svg> /a> span classfont-sans font-normal text-left text-lg leading-8 wrap-text w-72 mt-2 max-w-full>Virail es una plataforma en línea que compara todas las rutas disponibles para su viaje.span> div classflex flex-row mt-6 gap-6 max-w-fit justify-start pointer-events-auto> a hrefhttps://www.facebook.com/virail.travel aria-labelVirail Facebook> svg width32 height32 viewBox0 0 32 32 fillbg-white xmlnshttp://www.w3.org/2000/svg> path fill-ruleevenodd clip-ruleevenodd dM16 0C7.16344 0 0 7.16344 0 16C0 24.8366 7.16344 32 16 32C24.8366 32 32 24.8366 32 16C32 7.16344 24.8366 0 16 0ZM17.3197 16.499V25H13.7723V16.4993H12V13.5698H13.7723V11.811C13.7723 9.42112 14.773 8 17.6162 8H19.9832V10.9298H18.5037C17.3969 10.9298 17.3237 11.3392 17.3237 12.1033L17.3197 13.5695H20L19.6864 16.499H17.3197Z fill#F5F5F5>/path> /svg> /a> a hrefhttps://www.instagram.com/virail.travel aria-labelVirail Instagram> svg width32 height32 viewBox0 0 32 32 fillnone xmlnshttp://www.w3.org/2000/svg> rect width32 height32 rx16 fillwhite>/rect> path dM15.998 13.3322C14.529 13.3322 13.3302 14.531 13.3302 16C13.3302 17.469 14.529 18.6678 15.998 18.6678C17.467 18.6678 18.6658 17.469 18.6658 16C18.6658 14.531 17.467 13.3322 15.998 13.3322ZM23.9994 16C23.9994 14.8953 24.0094 13.8005 23.9474 12.6978C23.8853 11.4169 23.5931 10.2801 22.6565 9.3435C21.7179 8.40487 20.5831 8.11467 19.3022 8.05263C18.1975 7.99059 17.1027 8.0006 16 8.0006C14.8953 8.0006 13.8005 7.99059 12.6978 8.05263C11.4169 8.11467 10.2801 8.40687 9.3435 9.3435C8.40487 10.2821 8.11467 11.4169 8.05263 12.6978C7.99059 13.8025 8.0006 14.8973 8.0006 16C8.0006 17.1027 7.99059 18.1995 8.05263 19.3022C8.11467 20.5831 8.40687 21.7199 9.3435 22.6565C10.2821 23.5951 11.4169 23.8853 12.6978 23.9474C13.8025 24.0094 14.8973 23.9994 16 23.9994C17.1047 23.9994 18.1995 24.0094 19.3022 23.9474C20.5831 23.8853 21.7199 23.5931 22.6565 22.6565C23.5951 21.7179 23.8853 20.5831 23.9474 19.3022C24.0114 18.1995 23.9994 17.1047 23.9994 16V16ZM15.998 20.1048C13.7265 20.1048 11.8932 18.2715 11.8932 16C11.8932 13.7285 13.7265 11.8952 15.998 11.8952C18.2695 11.8952 20.1028 13.7285 20.1028 16C20.1028 18.2715 18.2695 20.1048 15.998 20.1048ZM20.2709 12.6858C19.7405 12.6858 19.3122 12.2575 19.3122 11.7271C19.3122 11.1968 19.7405 10.7685 20.2709 10.7685C20.8012 10.7685 21.2295 11.1968 21.2295 11.7271C21.2297 11.853 21.205 11.9778 21.1569 12.0942C21.1088 12.2105 21.0382 12.3163 20.9491 12.4053C20.8601 12.4944 20.7543 12.565 20.6379 12.6131C20.5216 12.6612 20.3968 12.6859 20.2709 12.6858V12.6858Z fill#0099A4>/path> /svg> /a> a hrefhttps://twitter.com/virailtravel aria-labelVirail Twitter> svg width32 height32 viewBox0 0 32 32 fillnone xmlnshttp://www.w3.org/2000/svg> path fill-ruleevenodd clip-ruleevenodd dM16 0C7.16344 0 0 7.16344 0 16C0 24.8366 7.16344 32 16 32C24.8366 32 32 24.8366 32 16C32 7.16344 24.8366 0 16 0ZM15.3159 14.0205L15.2834 13.4582C15.1858 12.0008 16.042 10.6697 17.3968 10.1533C17.8954 9.96973 18.7408 9.94678 19.2935 10.1074C19.5103 10.1763 19.9222 10.4058 20.2148 10.6123L20.7459 10.991L21.3311 10.7959C21.6563 10.6927 22.0898 10.5205 22.2849 10.4058C22.4692 10.3025 22.6317 10.2451 22.6317 10.2796C22.6317 10.4746 22.2307 11.1402 21.8947 11.5074C21.4395 12.0238 21.5696 12.0697 22.4908 11.7254C23.0436 11.5304 23.0544 11.5304 22.9461 11.7484C22.881 11.8631 22.545 12.2648 22.1874 12.632C21.5804 13.2631 21.5479 13.332 21.5479 13.8598C21.5479 14.6746 21.1794 16.3729 20.8109 17.3024C20.1281 19.0466 18.6649 20.8483 17.2017 21.7548C15.1425 23.0286 12.4004 23.3499 10.0918 22.604C9.32228 22.3515 8 21.7089 8 21.5941C8 21.5597 8.40102 21.5138 8.88874 21.5023C9.90755 21.4794 10.9263 21.181 11.7934 20.6532L12.3787 20.286L11.7067 20.045C10.7529 19.7007 9.89671 18.9089 9.67994 18.1631C9.61491 17.9221 9.63659 17.9106 10.2435 17.9106L10.8722 17.8991L10.3411 17.6352C9.71246 17.3024 9.13802 16.7401 8.85623 16.1664C8.6503 15.7533 8.39018 14.709 8.46605 14.6287C8.48772 14.5943 8.71533 14.6631 8.97545 14.7549C9.72329 15.0418 9.82084 14.9729 9.38731 14.491C8.57443 13.6189 8.32515 12.3222 8.71533 11.0943L8.89958 10.5435L9.61491 11.2894C11.0781 12.7926 12.8014 13.6877 14.774 13.9516L15.3159 14.0205Z fill#F5F5F5>/path> /svg> /a> /div> /span>/span>/div> div classflex flex-col lg:flex-row justify-start items-start lg:gap-8 mt-8 lg:mt-0 no-wrap> div classlg:w-180px> h2 classmb-4 font-medium text-base lg:leading-29px>¿Quiénes somos?/h2> ul> li classmb-2 font-normal text-base leading-29px hover:underline> a href/v/aviso-legal>Aviso legal/a> /li>li classmb-2 font-normal text-base leading-29px hover:underline> a href/v/politica-de-privacidad>Política de privacidad/a> /li>li classmb-2 font-normal text-base leading-29px hover:underline> a href/v/terminos-y-condiciones>Términos y condiciones/a> /li> li classmb-2 font-normal text-base leading-29px hover:underline> a href/hc>Centro de ayuda/a> /li> /ul> /div> div classflex-1 2xl:ml-8> h2 classmt-6 lg:mt-0 mb-4 font-medium text-lg lg:leading-8>Internacional/h2> ul> li classmb-2 font-normal text-base leading-29px hover:underline> a href/trenes-internacionales relfollow>Trenes Internacionales/a> /li>li classmb-2 font-normal text-base leading-29px hover:underline> a href/autobuses-internacionales relfollow>Autobuses Internacionales/a> /li>li classmb-2 font-normal text-base leading-29px hover:underline> a href/vuelos-internacionales relfollow>Vuelos Internacionales/a> /li>li classmb-2 font-normal text-base leading-29px hover:underline> a href/horarios-trenes relfollow>Horarios de trenes en el extranjero/a> /li>li classmb-2 font-normal text-base leading-29px hover:underline> a href/horarios-autobuses relfollow>Horarios de buses en el extranjero/a> /li> /ul> /div> /div> /div> hr classmx-4 lg:mx-0 mt-6 lg:mt-12 border-virail-gray-100> div classvirail-container mx-auto flex flex-row items-start justify-start lg:items-center lg:justify-center pb-8 mt-8 lg:mt-4 lg:pb-4> span classtext-sm leading-14px font-normal text-left lg:text-center>© 2024 Virail All Rights Reserved./span> /div> /div> /footer> /main> div classrelative stylez-index:60; idlogin-modal data-clientid322673971629-5bjt1m2g222gg7h8061bvnv941o7heuj.apps.googleusercontent.com data-currencyEUR data-localees data-imprint/v/aviso-legal>/div> script>(function(){const src /v4/login-modal.5d1bf408.js;const type text/javascript;document.addEventListener(readystatechange, event > { if (event.target.readyState complete) { window.loadAsyncScripts(src, null, login-modal-module, type) }});})();/script> script typetext/javascript>(function(){const endpoint https://personal-area.virail.app;const userLocalStorageKey virail_user_info_local_storage_v1;const userTimestampLocalStorageKey user_timestamp_local_storage; function dispatchUserEvents(eventName, user null){ document.dispatchEvent(new CustomEvent(eventName, { bubbles: true, detail: (!!user && !!user.id) ? user : null })); } async function fetchUserApis(relativeUrl){ const HTTP_TIMEOUT 8000; const controller new AbortController(); const timeoutId setTimeout(() > controller.abort(), HTTP_TIMEOUT); return await fetch(endpoint + relativeUrl, { method: GET, credentials: include, headers: { Accept: application/json }, signal: controller.signal }).finally(()> { clearTimeout(timeoutId); }); } window.addEventListener(request-user, async event > { const currentTimestamp Math.floor(Date.now() / 1000); const oneWeekTimestamp currentTimestamp + 7 * 24 * 60 * 60; // used to store user info for 7 day. let user JSON.parse(localStorage.getItem(userLocalStorageKey)); try { if(!!user && !user.exp){ const response await fetchUserApis(/api/v1/users) user await response.json(); if (!!user.id) { dispatchUserEvents(response-user-success, user); localStorage.setItem(userLocalStorageKey, JSON.stringify(user)); } else { dispatchUserEvents(response-user-empty); user {exp: oneWeekTimestamp}; localStorage.setItem(userLocalStorageKey, JSON.stringify(user)) if (!response.ok) throw new Error(await res.text()); } } else { if(!!user?.id){ dispatchUserEvents(response-user-success, user); } else { dispatchUserEvents(response-user-empty); } } } catch (error) { console.error(Error in fetching user from api: + error); dispatchUserEvents(response-user-empty); }finally { dispatchUserEvents(response-user, user); if(( !!user && !user.exp) || (!!user && !!user.exp && currentTimestamp > parseInt(user.exp))) { localStorage.removeItem(userLocalStorageKey); } } }); window.addEventListener(logout-user, async event > { try { await fetchUserApis(/api/v1/users/logout); dispatchUserEvents(response-user-empty); if(window.location.pathname /user/personal-area){ urlRedirect(/); } } catch (error) { console.error(Error in removing users session: + error); dispatchUserEvents(response-user-empty); }finally { localStorage.removeItem(userLocalStorageKey); dispatchUserEvents(response-user); } }); window.addEventListener(set-user, event > { try { const user event.detail.user; const eventData {...user}; if (user.id) { localStorage.setItem(userLocalStorageKey, JSON.stringify(user)); dispatchUserEvents(response-user-success, eventData); dispatchUserEvents(response-user, eventData); } else { dispatchUserEvents(request-user); } } catch (error) { dispatchUserEvents(request-user); } }); // fetch user when page loads window.addEventListener(load, function() { dispatchUserEvents(request-user); }, false);})();/script> script src/vendor/cookieconsent@v2.9.0/cookieconsent.js>/script> script typemodule>const language es;const translations {common:{rejectAll:Rechazar todo,saveSettings:Guardar ajustes,acceptAll:Aceptar todo,close:Cerrar,cookiePreferences:Preferencias de cookies,manageSettings:Administrar configuraciones},consentModal:{description:Hola, este sitio web utiliza cookies esenciales para garantizar su adecuado funcionamiento y sus hábitos de navegación para comprender cómo interactúas con él. Este último se establecerá solo después del consentimiento.,showSettingsModalButton:Déjame elegir,title:¡Utilizamos cookies!},settingsModal:{analytics:{desc:Las cookies para el rendimiento y las estadísticas ayudan a comprender cómo utilizas nuestro sitio web, de esta manera podemos garantizar una mejor experiencia de usuario e involucrar servicios de análisis a terceros. ,title:Analítica},core:{desc:Estas cookies son esenciales para el funcionamiento adecuado de nuestro sitio web y sus características vitales y seguridad.,title:Funciones básicas},marketing:{desc:Las cookies de marketing apoyan nuestros fines promocionales y optimizan el rendimiento de los anuncios en línea. Estas cookies nos permiten mostrar anuncios personalizados y relevantes de socios publicitarios de terceros. Los identificadores de usuario recibidos de estas cookies pueden cargarse en nuestra plataforma de socios publicitarios para mejorar aún más la personalización de nuestros anuncios.,title:Marketing},moreInformation:{desc:Para más información o cualquier consulta en relación con nuestra política sobre cookies y sus opciones, lee más a role\button\ href\{{ link_href }}\ class\{{ link_class }}\>aquí/a>.,title:Más información,descV2:Para obtener más información o cualquier consulta en relación con nuestra política de cookies y sus opciones, visite nuestra a href\/v/politica-de-privacidad\ class\text-virail-default hover:text-virail-default font-bold hover:font-bold\>política de privacidad/a> y a href\/v/terminos-y-condiciones\ class\ text-virail-default hover:text-virail-default font-bold hover:font-bold\>términos y condiciones/a>.},topInformation:{desc:Utilizamos cookies para garantizar las funcionalidades básicas del sitio web y para mejorar tu experiencia en línea. En cada categoría puedes elegir si deseas aceptarlas o rechazarlas.,title:Uso de cookies}}}; (() > { const cc initCookieConsent(); cc.run({ revision: 2023.3, current_lang: language, autoclear_cookies: true, page_scripts: false, mode: opt-out, delay: 0, autorun: true, force_consent: false, hide_from_bots: false, cookie_name: virail_cc, cookie_expiration: 30, use_rfc_cookie: false, gui_options: { consent_modal: { layout: box, position: middle center, transition: slide, swap_buttons: false }, settings_modal: { layout: box, transition: slide } }, onFirstAction: function (user_preferences, cookie) { // callback triggered only once on the first accept/reject action vitrack({ kibana: consent-manager__first-action, kibanaData: { userPrefences: user_preferences, cookie: cookie } }); }, onAccept: function (cookie) { if (document.readyState complete) { window.dispatchEvent(new CustomEvent(consent-manager, { detail: cookie })); } else { document.addEventListener(DOMContentLoaded, function() { window.dispatchEvent(new CustomEvent(consent-manager, { detail: cookie })); }); } // callback triggered on the first accept/reject action, and after each page load }, onChange: function (cookie, changed_categories) { // callback triggered when user changes preferences after consent has already been given vitrack({ kibana: consent-manager__changed-preferences, kibanaData: { changedCategories: changed_categories, cookie: cookie } }); }, languages: { language: { consent_modal: { title: translations.consentModal.title, description: translations.consentModal.description, primary_btn: { text: translations.common.acceptAll, role: accept_all // accept_selected or accept_all }, secondary_btn: { text: translations.common.manageSettings, role: settings // settings or accept_necessary } }, settings_modal: { title: translations.common.cookiePreferences, save_settings_btn: translations.common.saveSettings, accept_all_btn: translations.common.acceptAll, close_btn_label: translations.common.close, blocks: { title: `${translations.settingsModal.topInformation.title} 📢`, description: translations.settingsModal.topInformation.desc }, { title: `${translations.settingsModal.core.title} 🧠`, description: translations.settingsModal.core.desc, toggle: { value: necessary, enabled: true, readonly: true // cookie categories with readonlytrue are all treated as necessary cookies } }, { title: `${translations.settingsModal.analytics.title} 📈`, description: translations.settingsModal.analytics.desc, toggle: { value: analytics, // your cookie category enabled: true, readonly: false } }, { title: `${translations.settingsModal.marketing.title} 🎯`, description: translations.settingsModal.marketing.desc, toggle: { value: marketing, enabled: true, readonly: false } }, { title: translations.settingsModal.moreInformation.title, description: translations.settingsModal.moreInformation.descV2 } } } } }); window.cc cc; document.body.classList.add(cc__theme--virail); })();/script>script typemodule>const partnerId 1558;const allowedVendors 131,423,57,295; (() > { try{ window.addEventListener(consent-manager, event > { if((event?.detail?.level ?? ).includes(marketing)){ const scriptElement document.createElement(script); scriptElement.src https://cdn.id5-sync.com/api/1.0/id5-api.js; scriptElement.onload () > { try { window.id5Status ID5?.init({ partnerId: parseInt(partnerId), cmpApi: static, consentData: { allowedVendors: allowedVendors.split(,) } }); } catch(e) { console.error(e); } }; document.head.appendChild(scriptElement); } }, { once: true }); // once true here is not really needed as this event is emitted once per page but added it anyway } catch(e) { console.error(e); } })();/script>script>(function(){const gaScriptSrc https://www.googletagmanager.com/gtag/js?idG-SF55L04D8S;const gaTagId G-SF55L04D8S; window.addEventListener(consent-manager, event > { if((event?.detail?.level ?? ).includes(analytics)){ window.dataLayer window.dataLayer || ; window.gtag function() { dataLayer.push(arguments); } window.gtag(js, new Date()); window.gtag(config, gaTagId); const script document.createElement(script); script.setAttribute(async, ); script.setAttribute(src, gaScriptSrc); document.body.appendChild(script); } }, { once: true }); // once true here is not really needed as this event is emitted once per page but added it anyway})();/script>script typemodule>const ttq _setAccount,VIR,_setDataSource,dp,_setLanguage,es,_setLevel,1; (() > { let responseUserRecieved false; let consentRecieved false; let dataSent false; document.addEventListener(response-user, async ({ detail }) > { const user detail; /* crypto.subtle is undefined in insecure contexts, virail.test local dns entry is not considered secure, so test it from localhost origin */ if (!!user && isValidEmail(user.email) && window.crypto.subtle) { const hashedEmail await hashSha256(user.email.toLowerCase()); ttq.push(_setEmail, hashedEmail); } const userId await getUserId(); ttq.push(_setExternalId, userId); ttq.push(_setUrl, window.location.href); ttq.push(_track); window._ttq ttq; responseUserRecieved true; if(consentRecieved && !dataSent){ dataSent true; sendData(); } }, { once: true }); window.addEventListener(consent-manager, event > { if((event?.detail?.level ?? ).includes(marketing)){ consentRecieved true; if(responseUserRecieved && !dataSent){ dataSent true; sendData(); } } }, { once: true }); // once true here is not really needed as this event is emitted once per page but added it anyway function sendData(){ const scriptEl document.createElement(script); scriptEl.id travel-audience-script; scriptEl.type text/javascript; scriptEl.src `${document.location.protocol}//ads.travelaudience.com/js/ta.js`; document.body.appendChild(scriptEl); } function getUserId() { return new Promise((resolve) > { let count 0; const interval setInterval(() > { const userId window?.kbs?.lastEvent?.response?.data?.user._id; if (!userId) { /* Try 10 times to get userId _id */ if (count > 10) { clearInterval(interval); // noinspection JSCheckFunctionSignatures throw new Error(!user_id, { cause: { count } }); } count++; return; } resolve(userId); clearInterval(interval); }, 1000); }); } function isValidEmail(email) { if (!email) return false; const tester new RegExp(^-!#$%&\*+\\/0-9?A-Z^_a-z`{|}~(\\.?-!#$%&\*+\\/0-9?A-Z^_a-z`{|}~)*@a-zA-Z0-9(-*\\.?a-zA-Z0-9)*\\.a-zA-Z(-?a-zA-Z0-9)+$); const emailParts email.split(@); if (emailParts.length ! 2) return false; const account emailParts0; const address emailParts1; if (account.length > 64) return false; else if (address.length > 255) return false; const domainParts address.split(.); if (domainParts.some(function (part) { return part.length > 63; })) return false; return tester.test(email); } function hashSha256(str) { const utf8 new TextEncoder().encode(str); return crypto.subtle.digest(SHA-256, utf8).then((hashBuffer) > { const hashArray Array.from(new Uint8Array(hashBuffer)); return hashArray .map((bytes) > bytes.toString(16).padStart(2, 0)) .join(); }); } })();/script>script typemodule>const iframeUrl https://static.sojern.com/cip/p/Q8V9qdUs13cGkTTv.html;const searchParams {domain:es,pname:Index,p:home}; (async () > { let responseUserRecieved false; let consentRecieved false; let dataSent false; /* Abort script loading for bots / crawlers */ const pattern (googlebot\/|Googlebot-Mobile|Googlebot-Image|Google favicon|Mediapartners-Google|bingbot|slurp|java|wget|curl|Commons-HttpClient|Python-urllib|libwww|httpunit|nutch|phpcrawl|msnbot|jyxobot|FAST-WebCrawler|FAST Enterprise Crawler|biglotron|teoma|convera|seekbot|gigablast|exabot|ngbot|ia_archiver|GingerCrawler|webmon |httrack|webcrawler|grub.org|UsineNouvelleCrawler|antibot|netresearchserver|speedy|fluffy|bibnum.bnf|findlink|msrbot|panscient|yacybot|AISearchBot|IOI|ips-agent|tagoobot|MJ12bot|dotbot|woriobot|yanga|buzzbot|mlbot|yandexbot|purebot|Linguee Bot|Voyager|CyberPatrol|voilabot|baiduspider|citeseerxbot|spbot|twengabot|postrank|turnitinbot|scribdbot|page2rss|sitebot|linkdex|Adidxbot|blekkobot|ezooms|dotbot|Mail.RU_Bot|discobot|heritrix|findthatfile|europarchive.org|NerdByNature.Bot|sistrix crawler|ahrefsbot|Aboundex|domaincrawler|wbsearchbot|summify|ccbot|edisterbot|seznambot|ec2linkfinder|gslfbot|aihitbot|intelium_bot|facebookexternalhit|yeti|RetrevoPageAnalyzer|lb-spider|sogou|lssbot|careerbot|wotbox|wocbot|ichiro|DuckDuckBot|lssrocketcrawler|drupact|webcompanycrawler|acoonbot|openindexspider|gnam gnam spider|web-archive-net.com.bot|backlinkcrawler|coccoc|integromedb|content crawler spider|toplistbot|seokicks-robot|it2media-domain-crawler|ip-web-crawler.com|siteexplorer.info|elisabot|proximic|changedetection|blexbot|arabot|WeSEE:Search|niki-bot|CrystalSemanticsBot|rogerbot|360Spider|psbot|InterfaxScanBot|Lipperhey SEO Service|CC Metadata Scaper|g00g1e.net|GrapeshotCrawler|urlappendbot|brainobot|fr-crawler|binlar|SimpleCrawler|Livelapbot|Twitterbot|cXensebot|smtbot|bnf.fr_bot|A6-Indexer|ADmantX|Facebot|Twitterbot|OrangeBot|memorybot|AdvBot|MegaIndex|SemanticScholarBot|ltx71|nerdybot|xovibot|BUbiNG|Qwantify|archive.org_bot|Applebot|TweetmemeBot|crawler4j|findxbot|SemrushBot|yoozBot|lipperhey|y!j-asr|Domain Re-Animator Bot|AddThis); const regex new RegExp(pattern, i); if (regex.test(navigator.userAgent)) { return; } const urlSearchParams new URLSearchParams(searchParams); let srcUrl; document.addEventListener(response-user, async ({ detail }) > { const user detail; /* crypto.subtle is undefined in insecure contexts, virail.test local dns entry is not considered secure, so test it from localhost origin */ if (!!user && isValidEmail(user.email) && window.crypto.subtle) { const sha256Email await hashSha256(user.email.toLowerCase()); urlSearchParams.set(sha256_eml, sha256Email); } const userId await getUserId(); // noinspection JSCheckFunctionSignatures urlSearchParams.set(ccid, userId); urlSearchParams.set(l, navigator.language); srcUrl new URL(iframeUrl); srcUrl.search urlSearchParams.toString(); responseUserRecieved true; if(consentRecieved && !dataSent){ dataSent true; sendData(); } }, { once: true }); window.addEventListener(consent-manager, event > { if((event?.detail?.level ?? ).includes(marketing)){ consentRecieved true; if(responseUserRecieved && !dataSent){ dataSent true; sendData(); } } }, { once: true }); // once true here is not really needed as this event is emitted once per page but added it anyway function sendData(){ const iFrameEl document.createElement(iframe); iFrameEl.type text/html; iFrameEl.src srcUrl.toString(); iFrameEl.async ; iFrameEl.id sojern-pixel; iFrameEl.style.display none; document.body.appendChild(iFrameEl); } function getUserId() { return new Promise((resolve) > { let count 0; const interval setInterval(() > { const userId window?.kbs?.lastEvent?.response?.data?.user._id; if (!userId) { /* Try 10 times to get userId _id */ if (count > 10) { clearInterval(interval); // noinspection JSCheckFunctionSignatures throw new Error(!user_id, { cause: { count } }); } count++; return; } resolve(userId); clearInterval(interval); }, 1000); }); } /* @TODO Its a good idea to move isValidEmail and hashSha256 to a common place as its used by Sojern and Travel Audience */ function isValidEmail(email) { if (!email) return false; const tester new RegExp(^-!#$%&\*+\\/0-9?A-Z^_a-z`{|}~(\\.?-!#$%&\*+\\/0-9?A-Z^_a-z`{|}~)*@a-zA-Z0-9(-*\\.?a-zA-Z0-9)*\\.a-zA-Z(-?a-zA-Z0-9)+$); const emailParts email.split(@); if (emailParts.length ! 2) return false; const account emailParts0; const address emailParts1; if (account.length > 64) return false; else if (address.length > 255) return false; const domainParts address.split(.); if (domainParts.some(function (part) { return part.length > 63; })) return false; return tester.test(email); } function hashSha256(str) { const utf8 new TextEncoder().encode(str); return crypto.subtle.digest(SHA-256, utf8).then((hashBuffer) > { const hashArray Array.from(new Uint8Array(hashBuffer)); return hashArray .map((bytes) > bytes.toString(16).padStart(2, 0)) .join(); }); } })();/script>script typemodule>const adaraSdkKey YTUzOWMzYmYtZmQyMi00Nzg3LTkzNDEtZTg5OWJjZmEwYTU1;const adaraPartnerId 5668;const data {p:5668,ln:es,t:s,pg:hm}; (async () > { let responseUserRecieved false; let consentRecieved false; let dataSent false; /* Abort script loading for bots / crawlers */ const pattern (googlebot\/|Googlebot-Mobile|Googlebot-Image|Google favicon|Mediapartners-Google|bingbot|slurp|java|wget|curl|Commons-HttpClient|Python-urllib|libwww|httpunit|nutch|phpcrawl|msnbot|jyxobot|FAST-WebCrawler|FAST Enterprise Crawler|biglotron|teoma|convera|seekbot|gigablast|exabot|ngbot|ia_archiver|GingerCrawler|webmon |httrack|webcrawler|grub.org|UsineNouvelleCrawler|antibot|netresearchserver|speedy|fluffy|bibnum.bnf|findlink|msrbot|panscient|yacybot|AISearchBot|IOI|ips-agent|tagoobot|MJ12bot|dotbot|woriobot|yanga|buzzbot|mlbot|yandexbot|purebot|Linguee Bot|Voyager|CyberPatrol|voilabot|baiduspider|citeseerxbot|spbot|twengabot|postrank|turnitinbot|scribdbot|page2rss|sitebot|linkdex|Adidxbot|blekkobot|ezooms|dotbot|Mail.RU_Bot|discobot|heritrix|findthatfile|europarchive.org|NerdByNature.Bot|sistrix crawler|ahrefsbot|Aboundex|domaincrawler|wbsearchbot|summify|ccbot|edisterbot|seznambot|ec2linkfinder|gslfbot|aihitbot|intelium_bot|facebookexternalhit|yeti|RetrevoPageAnalyzer|lb-spider|sogou|lssbot|careerbot|wotbox|wocbot|ichiro|DuckDuckBot|lssrocketcrawler|drupact|webcompanycrawler|acoonbot|openindexspider|gnam gnam spider|web-archive-net.com.bot|backlinkcrawler|coccoc|integromedb|content crawler spider|toplistbot|seokicks-robot|it2media-domain-crawler|ip-web-crawler.com|siteexplorer.info|elisabot|proximic|changedetection|blexbot|arabot|WeSEE:Search|niki-bot|CrystalSemanticsBot|rogerbot|360Spider|psbot|InterfaxScanBot|Lipperhey SEO Service|CC Metadata Scaper|g00g1e.net|GrapeshotCrawler|urlappendbot|brainobot|fr-crawler|binlar|SimpleCrawler|Livelapbot|Twitterbot|cXensebot|smtbot|bnf.fr_bot|A6-Indexer|ADmantX|Facebot|Twitterbot|OrangeBot|memorybot|AdvBot|MegaIndex|SemanticScholarBot|ltx71|nerdybot|xovibot|BUbiNG|Qwantify|archive.org_bot|Applebot|TweetmemeBot|crawler4j|findxbot|SemrushBot|yoozBot|lipperhey|y!j-asr|Domain Re-Animator Bot|AddThis); const regex new RegExp(pattern, i); if (regex.test(navigator.userAgent)) { return; } let identity, sessionId; document.addEventListener(response-user, async ({ detail }) > { let userId; userId, sessionId await Promise.all( getUserId(), getSessionId() ); datauex sessionId; const identity { email_sha256: , visitor_uid: userId, }; const user detail; /* crypto.subtle is undefined in insecure contexts, virail.test local dns entry is not considered secure, so test it from localhost origin */ if (!!user && isValidEmail(user.email) && window.crypto.subtle) { identity.email_sha256 await hashSha256(user.email.toLowerCase()); } responseUserRecieved true; if(consentRecieved && !dataSent){ dataSent true; sendData(); } }, { once: true }); window.addEventListener(consent-manager, event > { if((event?.detail?.level ?? ).includes(marketing)){ consentRecieved true; if(responseUserRecieved && !dataSent){ dataSent true; sendData(); } } }, { once: true }); // once true here is not really needed as this event is emitted once per page but added it anyway function sendData(){ var script document.createElement(script); script.src https://js.adara.com/index.js; script.id adara-script; script.async true; script.onload () > { window.adara window.adara || function () { (window.adara.q window.adara.q || ).push(arguments); }; adara(init, adaraSdkKey, adaraPartnerId); adara(session, sessionId); adara(send, data); }; document.head.appendChild(script); } function getUserId() { return new Promise((resolve) > { let count 0; const interval setInterval(() > { const userId window?.kbs?.lastEvent?.response?.data?.user._id; if (!userId) { /* Try 10 times to get user _id */ if (count > 10) { clearInterval(interval); // noinspection JSCheckFunctionSignatures throw new Error(!userId, { cause: { count } }); } count++; return; } resolve(userId); clearInterval(interval); }, 1000); }); } function getSessionId() { return new Promise((resolve) > { let count 0; const interval setInterval(() > { const sessionId window?.kbs?.lastEvent?.response?.data?.session._id; if (!sessionId) { /* Try 10 times to get session _id */ if (count > 10) { clearInterval(interval); // noinspection JSCheckFunctionSignatures throw new Error(!session_id, { cause: { count } }); } count++; return; } resolve(sessionId); clearInterval(interval); }, 1000); }); } /* @TODO Its a good idea to move isValidEmail and hashSha256 to a common place as its used by Sojern and Travel Audience */ function isValidEmail(email) { if (!email) return false; const tester new RegExp(^-!#$%&\*+\\/0-9?A-Z^_a-z`{|}~(\\.?-!#$%&\*+\\/0-9?A-Z^_a-z`{|}~)*@a-zA-Z0-9(-*\\.?a-zA-Z0-9)*\\.a-zA-Z(-?a-zA-Z0-9)+$); const emailParts email.split(@); if (emailParts.length ! 2) return false; const account emailParts0; const address emailParts1; if (account.length > 64) return false; else if (address.length > 255) return false; const domainParts address.split(.); if (domainParts.some(function (part) { return part.length > 63; })) return false; return tester.test(email); } function hashSha256(str) { const utf8 new TextEncoder().encode(str); return crypto.subtle.digest(SHA-256, utf8).then((hashBuffer) > { const hashArray Array.from(new Uint8Array(hashBuffer)); return hashArray .map((bytes) > bytes.toString(16).padStart(2, 0)) .join(); }); } })();/script> script>(function(){const base http://www.virail.es; { /** * Helper function to redirect internal links and avoid being indexed/prioritized by google * * @param {Object|string} detailsOrUrl - { url:., days:.., tabUnder:.. } * url: url to be redirected * days: number of days (starting from today) to be added in case of search redirects * tabUnder: booking.com related ~ have been removed before ASTRO implementation k * @returns {void} */ } /** * @NOTE: the datalayer which is gtm is commented out because we dont use it anymore * Commenting it out instead of completely removing it as @jake said that if started paid advertisement again we will need this */ // window.dataLayers { // car: {event: ClickRC, gtm.element.dataset.gtmContainerRC: car.rental, gtm.element.dataset.gtmProviderRC: rentalcars_com}, // } window.urlRedirect function (detailsOrUrl, target null) { if (typeof detailsOrUrl ! object) { if( target blank) { window.open(detailsOrUrl, _blank).focus(); } else { window.location.href detailsOrUrl; } return; } const { days } detailsOrUrl; let { url,decode } detailsOrUrl; if(decode ! undefined && decode true){ // convert it from base64 to string url atob(url) } // Means that the date contains the number of days starting from today if(!!days) { const tzOffset (new Date()).getTimezoneOffset() * 60000; const redirectDate (new Date(Date.now() - tzOffset)); redirectDate.setDate(redirectDate.getDate() + days); url url.replace(%s, redirectDate.toISOString().slice(0, 10)); } // %t - represent the emt tracking from virail const emt window.virail && window.virail.stat && window.virail.stat.emt ? window.virail.stat.emt : null; if (!!emt) { url url.replace(%t, emt) // for old ads from cms } let type if (virail.transport) { url new URL(url, base + ((!((new URL(base)).port) && !!window.location.port) ? (: + window.location.port) : ())); if(url.pathname ! / && url.pathname ! /home){ if (url.searchParams.get(transports) null) { type virail.transport } else { type url.searchParams.get(transports) url.searchParams.delete(transports) } url.searchParams.set(t,type) } } if( target blank) { window.open(url, _blank).focus(); } else { window.location.href url; } };})();/script> script typetext/javascript>(function(){const umami a300bbfa-5757-487c-b874-f52787ca5d62; (() > { if (window.cc && window.cc.get(level) ! undefined && !window.cc.get(level).includes(analytics)) return; var script document.createElement(script); script.setAttribute(type, text/javascript); script.setAttribute(src, https://umami.virail.app/umami.js); script.setAttribute(data-website-id, umami); script.setAttribute(async, async); script.setAttribute(defer, defer); document.body.appendChild(script); })(); })();/script> script typetext/javascript> window.vitrack function(object) { if (typeof umami ! undefined && typeof object.umami ! undefined) { umami.trackEvent(object.umami.name, object.umami.type); } /** * @NOTE: the datalayer which is gtm is commented out because we dont use it anymore * Commenting it out instead of completely removing it as @jake said that if started paid advertisement again we will need this */ // if (typeof object.dataLayer ! undefined && typeof dataLayer ! undefined) { // dataLayer.push(object.dataLayer); // } if (typeof kbs ! undefined && typeof object.kibana ! undefined) { const name object.kibana; const data object.kibanaData || {}; const callback object.kibanaCallback || null; const options object.kibanaOptions || {}; const changes new CustomEvent( events-to-kbs, { detail: { name: name, data: data, options: options } } ); window.dispatchEvent(changes); if(!!callback){ window.addEventListener( callback-kbs, event > { const kbsResponse event.detail; callback(kbsResponse); }, { once: true } ); } } }; window.kibanaTracker function(event, data {}, callback null, options {}){ if (typeof window.vitrack ! undefined) { window.vitrack({ kibana: event, kibanaData: data, kibanaCallback: callback, kibanaOptions: options }); } };/script> script typetext/javascript>!function(e,o){if(functiontypeof define&&define.amd)define(exports,o);else if(undefined!typeof exports)o(exports);else{var t{};o(t),e.bodyScrollLockt}}(this,function(exports){use strict;Object.defineProperty(exports,__esModule,{value:!0});var t!1;if(undefined!typeof window){var e{get passive(){t!0}};window.addEventListener(testPassive,null,e),window.removeEventListener(testPassive,null,e)}function d(o){return s.some(function(e){return!(!e.options.allowTouchMove||!e.options.allowTouchMove(o))})}function l(e){var oe||window.event;return!!d(o.target)||(1o.touches.length||(o.preventDefault&&o.preventDefault(),!1))}function n(){void 0!m&&(document.body.style.paddingRightm,mvoid 0),void 0!v&&(document.body.style.overflowv,vvoid 0)}function i(){if(void 0!f){var e-parseInt(document.body.style.top,10),o-parseInt(document.body.style.left,10);document.body.style.positionf.position,document.body.style.topf.top,document.body.style.leftf.left,window.scrollTo(o,e),fvoid 0}}var cundefined!typeof window&&window.navigator&&window.navigator.platform&&(/iP(ad|hone|od)/.test(window.navigator.platform)||MacIntelwindow.navigator.platform&&1window.navigator.maxTouchPoints),s,u!1,a-1,vvoid 0,fvoid 0,mvoid 0;exports.disableBodyScrollfunction(r,e){if(r){if(!s.some(function(e){return e.targetElementr})){var o{targetElement:r,options:e||{}};s.concat(function(e){if(Array.isArray(e)){for(var o0,tArray(e.length);oe.length;o++)toeo;return t}return Array.from(e)}(s),o),c?window.requestAnimationFrame(function(){if(void 0f){f{position:document.body.style.position,top:document.body.style.top,left:document.body.style.left};var ewindow,oe.scrollY,te.scrollX,ne.innerHeight;document.body.style.positionfixed,document.body.style.top-o+px,document.body.style.left-t+px,setTimeout(function(){return window.requestAnimationFrame(function(){var en-window.innerHeight;e&&no&&(document.body.style.top-(o+e))})},300)}}):function(e){if(void 0m){var o!!e&&!0e.reserveScrollBarGap,twindow.innerWidth-document.documentElement.clientWidth;if(o&&0t){var nparseInt(window.getComputedStyle(document.body).getPropertyValue(padding-right),10);mdocument.body.style.paddingRight,document.body.style.paddingRightn+t+px}}void 0v&&(vdocument.body.style.overflow,document.body.style.overflowhidden)}(e),c&&(r.ontouchstartfunction(e){1e.targetTouches.length&&(ae.targetTouches0.clientY)},r.ontouchmovefunction(e){var o,t,n,i;1e.targetTouches.length&&(tr,i(oe).targetTouches0.clientY-a,d(o.target)||(t&&0t.scrollTop&&0i||(nt)&&n.scrollHeight-n.scrollTopn.clientHeight&&i0?l(o):o.stopPropagation()))},u||(document.addEventListener(touchmove,l,t?{passive:!1}:void 0),u!0))}}else console.error(disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.)},exports.clearAllBodyScrollLocksfunction(){c&&(s.forEach(function(e){e.targetElement.ontouchstartnull,e.targetElement.ontouchmovenull}),u&&(document.removeEventListener(touchmove,l,t?{passive:!1}:void 0),u!1),a-1),(c?i:n)(),s},exports.enableBodyScrollfunction(o){o?(ss.filter(function(e){return e.targetElement!o}),c&&(o.ontouchstartnull,o.ontouchmovenull,u&&0s.length&&(document.removeEventListener(touchmove,l,t?{passive:!1}:void 0),u!1)),(c?i:n)()):console.error(enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.)}});/script> /body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]