/* ===== GOOGLE FONTS ===== */
@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap");

/* ===== VARIABLES ===== */
:root {
	--header-height: 3.5rem;

	/* Colors */
	--first-color: hsl(22, 90%, 55%);
	--first-color-alt: hsl(22, 90%, 50%);
	--title-color: #044F58;
	--text-color: #053A41;
	--body-color: hsl(22, 100%, 99%);
	--container-color: #f5f5f5;
	--form-color: #fff;

	/* Typography */
	--body-font: "Poppins", sans-serif;
	--biggest-font-size: 2rem;
	--h1-font-size: 1.5rem;
	--h2-font-size: 1.25rem;
	--h3-font-size: 1rem;
	--normal-font-size: 0.938rem;
	--small-font-size: 0.813rem;
	--smaller-font-size: 0.75rem;

	/* Font weight */
	--font-medium: 500;
	--font-semi-bold: 600;

	/* Margins */
	--mb-0-5: 0.5rem;
	--mb-0-75: 0.75rem;
	--mb-1: 1rem;
	--mb-1-5: 1.5rem;
	--mb-2: 2rem;
	--mb-2-5: 2.5rem;

	/* Z-index */
	--z-tooltip: 10;
	--z-fixed: 100;
}

@media screen and (min-width: 968px) {
	:root {
		--biggest-font-size: 3rem;
		--h1-font-size: 2.25rem;
		--h2-font-size: 1.5rem;
		--h3-font-size: 1.25rem;
		--normal-font-size: 1rem;
		--small-font-size: 0.875rem;
		--smaller-font-size: 0.813rem;
	}
}

/* ===== RESET ===== */
*, *::before, *::after {
	box-sizing: border-box;
	padding: 0;
	margin: 0;
	line-height: 1.3rem;
}

html {
	scroll-behavior: smooth;
}

body, button, input, select {
	font-family: var(--body-font);
	font-size: var(--normal-font-size);
}

body {
	margin-top: var(--header-height);
	background-color: var(--body-color);
	color: var(--text-color);
	transition: 0.4s;
}

h1, h2, h3 {
	color: var(--title-color);
	font-weight: var(--font-semi-bold);
	line-height: 1.5rem;
}

ul { 
	list-style: none; }
a { 
	text-decoration: none; }
img { 
	max-width: 100%; 
	height: auto; }
button { 
	cursor: pointer; 
	border: none; 
	outline: none; }

/* ===== UTILITIES ===== */
.container {
	max-width: 1024px;
	margin-left: var(--mb-1-5);
	margin-right: var(--mb-1-5);
}

.grid { 
	display: grid; }
.main { 
	overflow: hidden; }

.section {
	padding: 4.5rem 0 2.5rem;
}

.section__title {
	font-size: var(--h2-font-size);
	text-align: center;
}

.section__title_cesta {
	font-size: 1rem;
	text-align: center;
	color: white;
}

.visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0,0,0,0);
	white-space: nowrap;
	border: 0;
}

/* ===== LAYOUT ===== */
#contenedor {
	height: 650px;
	overflow-y: auto;
	overflow-x: hidden;
	padding: 0 15px;
	width: 60%;
}

#carrito {
	width: 35%;
	display: flex;
}

/* ===== HEADER & NAV ===== */
.header {
	width: 100%;
	background-color: var(--body-color);
	position: fixed;
	top: 0;
	left: 0;
	z-index: var(--z-fixed);
	box-shadow: 0 5px 12px rgba(0,0,0,0.12);
}

.nav {
	height: var(--header-height);
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.nav__logo img {
	width: 200px;
	margin-top: 10px;
	transition: 0.3s;
}

.nav__toggle, .nav__close {
	font-size: 1.5rem;
	color: var(--title-color);
	cursor: pointer;
	display: none;
}

.nav__toggle {
	color: var(--first-color);
	position: absolute;
	top: 1rem;
	right: 1.25rem;
	z-index: 100;
}

.nav__list {
	display: flex;
	flex-direction: column;
	align-items: center;
	row-gap: 1rem;
	width: 100%;
	background-color: white;
	padding: 10px;
	margin-top: 0;
}

.nav__link {
	color: var(--text-color);
	transition: 0.3s;
	font-size: 1.1rem;
}

.nav__link:hover { 
	color: var(--first-color); }

.nav__link_select {
	color: var(--first-color);
	transition: 0.3s;
	font-size: 1.1rem;
}

.nav__link_select:hover { 
	color: var(--text-color); }

.nav__close {
	position: absolute;
	top: 1rem;
	right: 1.25rem;
	z-index: 50;
}

.show-menu { 
	display: flex; }
.scroll-header { 
	box-shadow: 0 1px 4px hsla(22, 4%, 15%, 0.1); }

.active-link {
	position: relative;
	color: var(--first-color);
}

.active-link::before {
	content: "";
	position: absolute;
	background-color: var(--first-color);
	width: 100%;
	height: 2px;
	bottom: -0.75rem;
	left: 0;
}

.top_bar{
	height: 35px;
	background-color: var(--title-color);
	width: 100vw;
	display: flex;
	justify-content: space-evenly;
	align-items: center;
	color: white;
	font-size: 1.1rem;
}


/* ===== LANGUAGE SELECTOR ===== */
.lang__selector {
	position: relative;
	display: inline-block;
}

.lang__selected {
	display: flex;
	align-items: center;
	padding: 0.5rem 1rem;
	border-radius: 5px;
	cursor: pointer;
	color: var(--title-color);
}

.lang__selected i { 
	transition: 0.3s; }
.lang__selected:hover i { 
	color: var(--first-color); }

.lang__list {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	background-color: #fff;
	border: 1px solid #ccc;
	border-radius: 5px;
	padding: 0.5rem 0;
	z-index: 10;
	min-width: 160px;
}

.lang__selector.open .lang__list { 
	display: block; }

.lang__item {
	display: flex;
	align-items: center;
	padding: 0.5rem 1rem;
	cursor: pointer;
	color: var(--text-color);
}

.lang__item:hover {
	background-color: hsla(22, 90%, 55%, 0.1);
	color: var(--first-color);
}

/* ===== CART ICON ===== */
.cart__link { 
	position: relative; }
.cart__icon { 
	font-size: 1.5rem; }

.cart__count {
	position: absolute;
	top: -8px;
	right: -8px;
	background-color: var(--first-color);
	color: #fff;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: var(--smaller-font-size);
}

/* ===== HOME ===== */
.home {
	position: relative;
	padding: 2rem 0 4rem;
	z-index: 1;
	overflow: hidden;
	background-color: #fff;
}

.home_seccion {
	position: relative;
	padding: 2rem 0 4rem;
	z-index: 1;
	overflow: hidden;
	background-color: #fff;
}

.home::before {
	content: "";
	position: absolute;
	inset: 0;
	background: url("../imagenes/fondo-oasbus-desktop.avif") center / cover no-repeat;
	z-index: -1;
}

.home__title, .home__description { 
	display: flex; }

/* ===== BOOKING FORM ===== */
.booking__container {
	margin: 0 auto;
	max-width: 1024px;
}

.booking__form {
	background-color: rgba(0, 0, 0, 0.5);
	padding: 1.5rem;
	border-radius: 1rem;
	box-shadow: 1px 1px 12px 5px rgba(0,0,0,0.18), 0 6px 10px rgba(0,0,0,0.08);
}

.booking__tabs {
	display: flex;
	justify-content: center;
	background-color: var(--container-color);
	padding: 0.5rem;
	border-radius: 0.75rem;
}

.booking__tab {
	padding: 0.75rem 1.25rem;
	cursor: pointer;
	border-radius: 0.5rem;
	transition: 0.3s;
	display: flex;
	align-items: center;
	gap: 0.5rem;
	color: var(--text-color);
	font-weight: var(--font-medium);
}

.booking__tab.active {
	background-color: var(--first-color);
	color: #fff;
}

.booking__inputs { 
	display: grid; 
	gap: 1.5rem; }
.booking__input-row { 
	display: grid; 
	gap: 1.5rem; }

.booking__input-group {
	position: relative;
	display: flex;
	align-items: center;
	gap: 0.75rem;
	background-color: var(--container-color);
	padding: 1rem;
	border-radius: 0.75rem;
	border: 1.5px solid hsla(22, 8%, 30%, 0.25);
	height: 50px;
	width: 220px;
	transition: border-color 0.3s, box-shadow 0.3s;
}

.booking__input-group_movil {
	display: flex;
	align-items: center;
	height: 50px;
	width: 100%;
	background-color: var(--first-color);
	color: white;
	border-radius: .75rem .75rem 0 0;
	justify-content: center;
}

.carrito_home {
	width: 50px;
	height: 50px;
	background-color: var(--first-color);
	border-radius: 0.75rem 0 0 0.75rem;
	display: none;
	justify-content: center;
	align-items: center;
	right: 0;
}

.booking__input-group:focus-within {
	border-color: var(--first-color);
	box-shadow: 0 0 0 2px hsla(22, 90%, 55%, 0.15);
}

.booking__input-group i {
	font-size: 1.5rem;
	color: var(--first-color);
}

.booking__input-group select,
.booking__input-group input {
	width: 100%;
	background: none;
	border: none;
	outline: none;
	font-size: var(--normal-font-size);
	color: var(--text-color);
}

.titulo_panel {
	background-color: var(--title-color);
	padding: 80px 20px;
	color: white;
}

#error-acceso {
	background-color: white;
	border-radius: 1.5rem;
	color: var(--first-color);
}

/* ===== STEPS ===== */
.activity-steps {
	background: #ffffff;
	padding: 80px 20px;
}

.activity-steps__wrap {
	max-width: 1100px;
	margin: 0 auto;
}

.steps-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 40px;
}

.steps-flex {
	display: flex;
	gap: 40px;
}

.activity-steps_flex {
	background: transparent;
	padding: 0 20px;
}

.step-card {
	background: #fff;
	border-radius: 16px;
	padding: 40px 32px;
	box-shadow: 0 10px 30px rgba(15,23,42,.06);
	position: relative;
	transition: transform .25s ease, box-shadow .25s ease;
}

.step-card:hover {
	transform: translateY(-6px);
	box-shadow: 0 20px 50px rgba(15,23,42,.12);
}

.step-number {
	width: 48px;
	height: 48px;
	background: var(--first-color-alt);
	color: #fff;
	font-weight: 700;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 24px;
	font-size: 1.2rem;
}

.step-card h3 {
	font-size: 1.3rem;
	margin: 0 0 12px;
	color: var(--title-color);
	font-weight: 700;
}

.step-card p {
	font-size: 1.1rem;
	line-height: 1.6;
	color: var(--text-color);
	margin: 0;
}

.step-card span {
	display: block;
	margin-top: 10px;
	font-size: 0.85rem;
	color: var(--text-color);
}

.steps-notice {
	max-width: 1100px;
	margin: 40px auto 0;
	background: #fff;
	border-left: 5px solid var(--title-color);
	padding: 18px 24px;
	border-radius: 12px;
	color: var(--title-color);
	font-size: 1.1rem;
	box-shadow: 0 8px 20px rgba(15,23,42,.05);
}

.notice-danger {
	color: var(--first-color-alt);
	font-weight: 700;
}

/* ===== PASSENGER DROPDOWN ===== */
.passenger__control {
	width: 100%;
	cursor: pointer;
}

.passenger__dropdown {
	display: none;
	position: absolute;
	background-color: #fff;
	top: 100%;
	left: 0;
	right: 0;
	padding: 1.5rem;
	border-radius: 0.75rem;
	box-shadow: 0 8px 16px hsla(22, 10%, 8%, 0.15);
	z-index: var(--z-tooltip);
}

.passenger__control.open .passenger__dropdown { 
	display: block; }

.passenger__text {
	display: flex;
	align-items: center;
}

.passenger__item {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 1rem;
}

.passenger__stepper {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.stepper__btn {
	width: 32px;
	height: 32px;
	background-color: var(--first-color);
	color: #fff;
	border-radius: 50%;
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 1.5rem;
	transition: 0.3s;
}

.stepper__btn:hover { 
	background-color: var(--first-color-alt); }
.stepper__value { 
	font-weight: var(--font-semi-bold); 
	font-size: 1.1rem; }

/* ===== BUTTONS ===== */
.booking__button {
	width: 100%;
	padding: 1.25rem;
	background-color: var(--first-color);
	color: #fff;
	font-size: var(--h3-font-size);
	font-weight: var(--font-semi-bold);
	border-radius: 0.75rem;
	transition: 0.3s;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.75rem;
	margin-top: 1rem;
}

.booking__button:hover {
	background-color: var(--first-color-alt);
	box-shadow: 0 4px 12px hsla(22, 90%, 50%, 0.2);
}

.booking__cesta {
	font-size: 1rem;
	margin: 15px 10px;
}

.booking__button_cesta {
	width: 50%;
	padding: 0.25rem;
	background-color: var(--first-color);
	color: #fff;
	font-size: 1rem;
	font-weight: var(--font-semi-bold);
	border-radius: 0.75rem;
	transition: 0.3s;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.75rem;
	margin: 1rem auto 0;
}

/* ===== INFO SECTION ===== */
.info { 
	padding: 2.5rem 0 4.5rem; }

.info__container {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 2rem;
}

.info__item {
	background-color: var(--form-color);
	padding: 2rem 1.5rem;
	border-radius: 0.75rem;
	text-align: center;
	box-shadow: 0 8px 16px hsla(22, 10%, 8%, 0.05);
	transition: 0.3s;
	border: 1.5px solid transparent;
}

.info__item:hover {
	transform: translateY(-0.5rem);
	border-color: var(--first-color);
	box-shadow: 0 12px 24px hsla(22, 90%, 50%, 0.1);
}

.info__icon {
	font-size: 2.5rem;
	color: var(--first-color);
	margin-bottom: var(--mb-1);
	display: block;
}

.info__title { 
	font-size: var(--h3-font-size); 
	margin-bottom: var(--mb-0-5); }
.info__description { 
	font-size: var(--small-font-size); 
	color: var(--text-color); 
	line-height: 1.5; }

/* ===== FOOTER ===== */
.footer {
	padding: 3rem 0 2rem;
	color: white;
	position: relative;
}

.footer--orange { 
	background-color: var(--title-color); }

.footer a { 
	color: #f5f5f5; 
	opacity: 0.85; }
.footer a:hover { 
	opacity: 1; 
	text-decoration: underline; }

.footer__top {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	flex-wrap: wrap;
	gap: 2rem;
	padding-bottom: 2rem;
	border-bottom: 1px solid hsl(22, 8%, 20%);
}

.footer__data { 
	max-width: 400px; }
.footer__logo { 
	width: 160px; 
	margin-bottom: 1rem; 
	filter: grayscale(1) brightness(1.2); }
.footer__description { 
	line-height: 1.6; }
.footer__payment-methods { 
	display: flex; 
	gap: 1rem; }
.footer__payment-img { 
	height: 45px; }

.footer__bottom {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1.5rem;
	text-align: center;
	margin-top: 20px;
}

.footer__legal { 
	display: flex; 
	gap: 1.5rem; 
	flex-wrap: wrap; 
	justify-content: center; }
.footer__link { 
	color: hsl(22, 8%, 70%); 
	transition: 0.3s; 
	font-size: var(--small-font-size); }
.footer__link:hover { 
	color: var(--first-color); }
.footer__copy { 
	font-size: var(--small-font-size); }
.footer__title { 
	color: #ffd5ae; 
	margin-bottom: 10px; }

.footer__grid {
	display: grid;
	gap: 2.5rem;
	border-bottom: 1px solid rgba(255,255,255,0.15);
	padding-bottom: 2.5rem;
}

/* ===== BUS TICKETS ===== */
.bus-ticket {
	background-color: #fff;
	padding: 1rem;
	border-radius: 0.75rem;
	margin-bottom: 2rem;
	box-shadow: 0 4px 12px hsla(0, 0%, 15%, 0.1);
	transition: transform 0.3s;
	border: 1px solid #999;
	display: flex;
	justify-content: space-between;
	flex-direction: column;
}

.bus-ticket:hover {
	transform: translateY(-5px);
	box-shadow: 0 8px 16px hsla(0, 0%, 15%, 0.1);
}

.bus-ticket__header {
	display: flex;
	justify-content: center;
	align-items: center;
	margin-bottom: 1rem;
	padding-bottom: 1rem;
	border-bottom: 1px dashed #ccc;
	width: 20%;
}

.bus-ticket__time {
	font-size: 1.5rem;
	font-weight: 600;
	color: #333;
	width: 40%;
	text-align: center;
	display: flex;
	justify-content: space-around;
	align-items: center;
}

.bus-ticket__direct {
	background-color: #eee;
	color: #333;
	padding: 0.25rem 0.75rem;
	border-radius: 50px;
	font-size: 0.8rem;
	font-weight: 500;
}

.bus-ticket__direct.no-direct {
	background-color: #fff0f0;
	color: #d93030;
}

.bus-ticket__body {
	display: flex;
	align-items: center;
	text-align: center;
	width: 100%;
	justify-content: space-between;
}

.bus-ticket__body_locations {
	display: flex;
	align-items: center;
	text-align: center;
	width: 100%;
	justify-content: space-between;
}

.bus-ticket__station {
	font-size: 1rem;
	font-weight: 500;
	margin: 20px;
	width: 40%;
	line-height: 1rem;
}

.bus-ticket__station p { 
	font-size: 1rem; 
	font-weight: 500; 
	margin: 0; 
	line-height: 1rem; }
.bus-ticket__station span { 
	font-size: 0.8rem; 
	color: #666; }

.bus-ticket__duration {
	display: flex;
	flex-direction: column;
	align-items: center;
	color: #555;
	width: 18%;
}

.bus-ticket__arrow {
	display: flex;
	flex-direction: column;
	align-items: center;
	color: #555;
	width: 18%;
	font-size: 2rem;
}

.bus-ticket__arrow::before { 
	content: "→"; }

.bus-ticket__duration i { 
	font-size: 1.5rem; 
	color: var(--first-color); }
.bus-ticket__duration .line { 
	width: 100%; 
	height: 2px; 
	background-color: #ddd; 
	margin: 0.25rem 0; }
.bus-ticket__duration span { 
	font-size: 0.85rem; 
	font-weight: 500; }

.bus-ticket__footer {
	display: flex;
	align-items: center;
	width: 100%;
	flex-direction: column;
	margin-top: 20px;
}

.bus-ticket__price {
	font-size: 1.75rem;
	font-weight: 700;
	color: var(--first-color);
	width: 40%;
}

.bus-ticket__button {
	background-color: var(--first-color);
	color: #fff;
	padding: 0.4rem 1.5rem;
	border-radius: 0.5rem;
	font-weight: 600;
	transition: background-color 0.3s, transform 0.2s;
	border: none;
	cursor: pointer;
}

.bus-ticket__button:hover {
	background-color: #E69500;
	transform: scale(1.05);
}

.cabecera_results {
	background-color: var(--first-color);
	color: white;
	border-radius: 0.75rem 0.75rem 0 0;
	margin-bottom: 20px;
	display: flex;
	align-items: center;
	padding: 10px;
	justify-content: space-between;
}

/* ===== PRICING ===== */
.input_precio {
	line-height: 0;
	min-height: 20px !important;
	margin-right: 10px !important;
	text-align: right;
	border: none !important;
	padding: 0 !important;
	width: 100px;
}

.sys_precio_total {
	font-size: 1rem;
	line-height: 1rem;
	width: 50%;
	color: black;
	text-align: right;
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin: 10px 0;
}

/* ===== PRIVACY / COOKIES ===== */
.privacy-section {
	margin-bottom: 2rem;
	padding-bottom: 1.5rem;
	border-bottom: 1px solid #eee;
}

.privacy-section h2 { 
	font-size: 1.8rem; 
	margin-bottom: 1rem; 
	color: #333; }
.privacy-section h3 { 
	font-size: 1.4rem; 
	margin-top: 1.5rem; 
	margin-bottom: 0.8rem; 
	color: #555; }
.privacy-section p, .privacy-section li { 
	line-height: 1.7; 
	color: #666; }
.privacy-section strong { 
	color: #444; }
.privacy-section ul { 
	padding-left: 20px; 
	list-style: disc; }

.toc, .summary-box {
	background-color: #f9f9f9;
	border: 1px solid #e0e0e0;
	border-radius: 8px;
	padding: 1.5rem;
	margin-bottom: 2rem;
}

.toc h2, .summary-box h2 { 
	margin-top: 0; 
	margin-bottom: 1rem; }
.toc ul, .summary-box ul { 
	padding-left: 0; 
	list-style: none; }
.summary-box li { 
	margin-bottom: 0.5rem; }
.toc li a { 
	color: #0056b3; 
	transition: color 0.3s; }
.toc li a:hover { 
	color: #003d82; 
	text-decoration: underline; }

.search-results { 
	margin-top: 40px; }

/* ===== MISC ===== */
.bola {
	width: 40px;
	height: 40px;
	display: flex;
	justify-content: center;
	align-items: center;
	border-radius: 50px;
	color: white;
	background-color: grey;
	margin-right: 20px;
	font-weight: normal;
	line-height: 0;
}

.bola_del {
	width: 25px;
	height: 25px;
	color: #484848;
	cursor: pointer;
	background-color: #bdbdbd;
	border-radius: 1.5rem;
	display: flex;
	align-items: center;
	justify-content: center;
}

.bola_del:hover {
	color: white;
	background-color: black;
}

.subtitulo {
	display: flex;
	flex-direction: row;
	width: 100%;
	align-items: center;
	font-size: 1.6rem;
	font-weight: 600;
	margin-top: 25px;
}

.past_naranja {
	display: flex;
	width: 18%;
	align-items: center;
	justify-content: center;
	background-color: var(--first-color);
	color: white;
	flex-direction: column;
	height: 100%;
	padding: 25px;
	border-radius: 1.5rem;
	margin-top: 10px;
}

.contenedor_cajas_viaje {
	width: 80%;
	padding: 10px;
	display: flex;
}

.caja_viaje {
	display: flex;
	flex-direction: column;
	padding: 20px 10px 10px;
	margin-bottom: 10px;
	width: 45%;
	margin-left: 50px;
	border: 1px solid #bfbfbf;
	border-radius: 1.5rem;
}

.texto_fecha { 
	font-size: 0.9rem; 
	font-weight: 600; }
.texto_parada { 
	font-size: 0.8rem; 
	font-weight: normal; }

.sys-checkout-form {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
	margin: 20px 25px;
	font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display",
	"Helvetica Neue", Helvetica, Arial, sans-serif;
}

.sys_caja_formulario {
	width: 100%;
	border-radius: 30px;
}

.cajas_detalles_checkout {
	display: flex;
	flex-direction: row;
	margin-left: 50px;
	align-items: center;
}

/* ===== TOGGLE SWITCH ===== */
.switch {
	position: relative;
	display: inline-block;
	width: 50px;
	height: 25px;
}

.switch input { 
	display: none; }

.slider {
	position: absolute;
	cursor: pointer;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-color: #ccc;
	transition: .4s;
}

.slider:before {
	position: absolute;
	content: "";
	height: 18px;
	width: 18px;
	left: 4px;
	bottom: 4px;
	background-color: white;
	transition: .4s;
}

input:checked + .slider { 
	background-color: #0799ef; }

input:checked + .slider:before {
	transform: translateX(26px);
}

.slider.round { 
	border-radius: 34px; }
.slider.round:before { 
	border-radius: 50%; }

.error {
	color: red;
	font-size: 0.8rem;
	display: none;
}

/* ===== TPV INSITE ===== */
#checkin {
	display: flex;
	flex-direction: column;
	width: 100%;
	margin-left: 10px;
	margin-top: 25px;
}

#redsys-insite-wrap {
	width: 100%;
	max-width: 680px;
	background: #fff;
	border: 1px solid #e2e6f0;
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 4px 24px rgba(0,0,0,.08);
	animation: slideDown .35s ease;
}

@keyframes slideDown {
	from { 
		opacity: 0; 
		transform: translateY(-12px); }
	to   { 
		opacity: 1; 
		transform: translateY(0); }
}

#redsys-insite-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px 20px;
	background: #f7f9fc;
	border-bottom: 1px solid #e2e6f0;
	font-size: 13px;
	color: #555;
}

#redsys-insite-header .rds-title {
	display: flex;
	align-items: center;
	gap: 8px;
	font-weight: 600;
	color: #222;
}

#redsys-insite-header .rds-title svg { 
	flex-shrink: 0; }

#redsys-insite-header .rds-secure {
	display: flex;
	align-items: center;
	gap: 5px;
	font-size: 11px;
	color: #27ae60;
}

#redsys-insite-header .rds-secure::before {
	content: '';
	display: inline-block;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: #27ae60;
}

#redsys-loader {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	padding: 48px 20px;
	color: #888;
	font-size: 13px;
}

#redsys-loader .rds-spinner {
	width: 28px;
	height: 28px;
	border: 3px solid #e0e4ee;
	border-top-color: #1a56db;
	border-radius: 50%;
	animation: spin .7s linear infinite;
	flex-shrink: 0;
}

@keyframes spin { to { 
		transform: rotate(360deg); }
}

#redsys-iframe {
	width: 100%;
	min-height: 500px;
	border: none;
	display: block;
}

#redsys-error {
	display: none;
	padding: 16px 20px;
	background: #fff5f5;
	border-top: 1px solid #fecaca;
	color: #c0392b;
	font-size: 13px;
}

#boton_checkin:disabled {
	opacity: .6;
	cursor: not-allowed;
}

#card-form {
	display: flex;
	flex-direction: row;
	width: 80%;
	margin: 25px auto 0;
	height: 250px;
	border: 1px solid grey;
	border-radius: 1.5rem;
	padding: 25px;
	background-color: #d9d6d6;
}

/* ===== ABOUT ===== */
.about {
	--primary: #1e3a8a;
	--first-color: #2563eb;
	--text: #1f2937;
	--text-light: #6b7280;
	--bg-alt: #f8fafc;
	--border: #e5e7eb;
}

.about .container {
	max-width: 1100px;
	margin: 0 auto;
	padding: 0 20px;
}

.about__title {
	font-size: 42px;
	margin-bottom: 20px;
	font-weight: 700;
}

.about__subtitle {
	font-size: 18px;
	opacity: 0.9;
	max-width: 700px;
	margin: 0 auto 30px;
}

.about__hero-features {
	display: flex;
	justify-content: center;
	gap: 30px;
	flex-wrap: wrap;
	font-size: 14px;
}

.about__hero-features i {
	margin-right: 6px;
	color: #a5f3fc;
}

.about__grid-2 {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 30px;
	color: var(--text-light);
	font-size: 16px;
}

.about__highlight {
	margin-top: 30px;
	padding: 20px;
	background: #eef2ff;
	border-left: 4px solid var(--first-color);
	display: flex;
	gap: 10px;
	align-items: center;
	border-radius: 8px;
	font-weight: 500;
}

.about__highlight i {
	font-size: 20px;
	color: var(--first-color);
}

.about__section--alt { 
	background: var(--bg-alt); }

.about__mission {
	display: flex;
	gap: 30px;
	align-items: flex-start;
	max-width: 800px;
	margin: 0 auto;
}

.about__mission-icon {
	font-size: 40px;
	color: var(--first-color);
}

.about__list {
	margin-top: 15px;
	list-style: none;
	padding: 0;
}

.about__list li { 
	margin-bottom: 10px; 
	color: var(--text-light); }
.about__list i { 
	color: var(--first-color); 
	margin-right: 8px; }

.about__values {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
	gap: 25px;
	margin-top: 40px;
}

.about__card {
	background: #fff;
	border: 1px solid var(--border);
	padding: 25px;
	border-radius: 12px;
	text-align: center;
	transition: all 0.25s ease;
}

.about__card i { 
	font-size: 32px; 
	color: var(--first-color); 
	margin-bottom: 15px; }
.about__card h3 { 
	margin-bottom: 10px; 
	font-size: 18px; }
.about__card p { 
	font-size: 14px; 
	color: var(--text-light); }

.about__card:hover {
	transform: translateY(-6px);
	box-shadow: 0 10px 25px rgba(0,0,0,0.08);
}

.about__trust {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 20px;
	margin-top: 30px;
	text-align: center;
}

.about__trust-item { 
	padding: 20px; }
.about__trust-item i { 
	font-size: 26px; }

/* ===== RESPONSIVE ===== */

/* Tablet (768px+) */
@media screen and (min-width: 768px) {
	body { 
		margin: 0; }

	.nav { 
		height: calc(var(--header-height) + 1.5rem); }
	.nav__logo img { 
		width: 220px; 
		margin-top: 15px; }
	.nav__menu { 
		margin-left: auto; }
	.nav__list { 
		flex-direction: row; 
		column-gap: 2.5rem; }
	.nav__toggle, .nav__close { 
		display: none; }

	.home { 
		padding: 10rem 0 5rem; }
	.home__title { 
		font-size: 2.3rem; 
		line-height: 37px; 
		color: var(--title-color); }
	.home__description { 
		margin-top: 20px; 
		font-size: 1.1rem; }

	.booking__form { 
		padding: 2.5rem; }
	.booking__input-row { 
		grid-template-columns: repeat(3, 1fr); }

	.footer__grid { 
		grid-template-columns: repeat(4, 1fr); }
	.footer__logo { 
		width: 150px; }
		
	.top_bar{
		height: 35px;
		background-color: var(--title-color);
		width: 100vw;
		display: flex;
		justify-content: space-evenly;
		align-items: center;
		color: white;
		font-size: 0.9rem;
	}
}

/* Desktop (1024px+) */
@media screen and (min-width: 1024px) {
	.container { 
		margin-left: auto; 
		margin-right: auto; 
		width: 90%; }
	.nav__toggle, .nav__close { 
		display: none; }
	.home { 
		padding: 9rem 0 6rem; }

	.home__container--pc {
		display: grid;
		grid-template-columns: 1fr 400px;
		align-items: start;
		gap: 7rem;
	}

	.home__text {
		text-align: left;
		margin-right: 40px;
		background-color: rgba(255,255,255,0.237);
		padding: 20px;
		border-radius: 10px;
		box-shadow: 0 4px 8px rgba(0,1,0,0.127);
	}

	.home__title { 
		display: block; 
		color: var(--title-color); }
	.home__description { 
		display: block; 
		color: #704f23; }

	.booking__input-row--double { 
		display: flex; 
		gap: 1rem; }
	.booking__input-row--double .booking__input-group { 
		flex: 1; }
	.booking__button { 
		height: 50px; }
	.top_bar{
		height: 35px;
		background-color: var(--title-color);
		width: 100vw;
		display: flex;
		justify-content: space-evenly;
		align-items: center;
		color: white;
		font-size: 0.9rem;
	}
}

/* Mobile (<768px) */
@media screen and (max-width: 767px) {
	.home {
		position: relative;
		padding: 2rem 0 4rem;
		z-index: 1;
		overflow: hidden;
		background-color: #fff;
	}
.container {
	max-width: 100vw;
	margin-left: 10px;/*var(--mb-1-5);*/
	margin-right: 10px;/*var(--mb-1-5);*/
}
	.home::before {
		content: "";
		position: absolute;
		inset: 0;
		background: url("../imagenes/fondo-oasbus-movil.avif") center / cover no-repeat;
		z-index: -1;
	}

	#contenedor { 
		height: 450px; 
		width: 100%; }

	#carrito {
		font-size: 1rem;
		margin-bottom: 10px;
		position: fixed;
		width: 340px;
		min-height: 340px;
		top: 130px;
		right: -340px;
		z-index: 100;
		display: flex;
		transform: translateX(0);
		transition: transform 0.05s linear;
	}

	.nav { 
		height: var(--header-height); 
		display: flex; 
		justify-content: space-between; 
		align-items: center; }
	.nav__toggle { 
		display: flex; 
		color: var(--first-color); 
		justify-content: flex-end;
		top:53px;
		 }
	.nav__close { 
		display: none; 
		color: var(--first-color); 
		justify-content: flex-end; }

	.nav__menu {
		position: fixed;
		top: 0;
		right: 120px;
		padding-top: 56px;
		transition: 0.3s;
	}

	.nav__item { 
		padding-top: 10px; 
		padding-bottom: 10px; 
		color: var(--text-color); }
	.nav__item:hover { 
		color: var(--first-color); }
	.nav__item_select { 
		padding-top: 10px; 
		padding-bottom: 10px; 
		color: var(--first-color-alt); }
	.nav__item_select:hover { 
		color: var(--text-color); }

	.home__title {
		display: block;
		color: #ffffff;
		margin-top: 10px;
		margin-bottom: 30px;
		text-align: center;
		line-height: 1.8rem;
	}

	.home__description { 
		display: none; }

	select, option { 
		font-size: 14px; }

	.bus-ticket__body {
		display: flex;
		align-items: center;
		text-align: center;
		width: 100%;
		justify-content: space-between;
	}

	.bus-ticket__body_locations {
		display: flex;
		align-items: center;
		text-align: center;
		width: 100%;
		flex-direction: column;
	}

	.bus-ticket__station { 
		font-size: 1rem; 
		font-weight: 500; 
		margin: 12px; 
		width: 100%; 
		line-height: 1rem; }

	.bus-ticket__arrow {
		display: flex;
		flex-direction: column;
		align-items: center;
		color: var(--first-color);
		font-size: 1.2rem;
		font-weight: bold;
	}

	.bus-ticket__arrow::before { 
		content: "↓"; }

	.nav__list { 
		display: none; 
		flex-direction: row; 
		column-gap: 2.5rem; }

	.carrito_home {
		width: 50px;
		height: 50px;
		background-color: var(--first-color);
		right: 0;
		border-radius: 0.75rem 0 0 0.75rem;
		display: flex;
		justify-content: center;
		align-items: center;
		position: fixed;
		top: 130px;
		z-index: 1000;
	}

	.booking__input-group_movil {
		display: flex;
		align-items: center;
		height: 50px;
		width: 100%;
		background-color: var(--first-color);
		color: white;
		border-radius: 0;
		justify-content: center;
	}
	.top_bar{
		height: 35px;
		background-color: var(--title-color);
		width: 100vw;
		display: flex;
		justify-content: space-evenly;
		align-items: center;
		color: white;
		font-size: 0.8rem;
	}
}

/* Small mobile (<576px) */
@media screen and (max-width: 576px) {
	.info__container { 
		grid-template-columns: 1fr; }
	.info__item { 
		padding: 1.5rem 1rem; }
	.bus-ticket__duration { 
		display: none; }
}