:root {
  --color-azul-profundo: #1c1263;
  --color-azul-activo: #150f68;
  --color-blanco: #ffffff;
  --color-gris-texto: #5c5c5c;
  --color-gris-claro: #f6f6f8;
  --color-naranja: #ff6500;
  --color-sombra: rgba(20, 18, 50, 0.16);
  --fuente-principal: Arial, Helvetica, sans-serif;
  --ancho-contenido: 1070px;
  --altura-barra-superior: 33px;
  --altura-cabecera: 80px;
  --transicion-rapida: 180ms ease;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  color: var(--color-gris-texto);
  font-family: var(--fuente-principal);
  background: var(--color-blanco);
}

img {
  display: block;
  max-width: 100%;
}

a {
  color: inherit;
  text-decoration: none;
}

button {
  font: inherit;
}

.enlace-salto {
  position: fixed;
  inset-block-start: 12px;
  inset-inline-start: 12px;
  z-index: 100;
  padding: 10px 14px;
  color: var(--color-blanco);
  background: var(--color-azul-profundo);
  border-radius: 4px;
  transform: translateY(-160%);
  transition: transform var(--transicion-rapida);
}

.enlace-salto:focus {
  transform: translateY(0);
}

.cabecera {
  position: sticky;
  top: 0;
  z-index: 10;
  background: var(--color-blanco);
}

.cabecera__barra-superior {
  min-height: var(--altura-barra-superior);
  color: var(--color-blanco);
  background: var(--color-azul-profundo);
}

.cabecera__contactos {
  display: flex;
  align-items: center;
  gap: 18px;
  min-height: var(--altura-barra-superior);
  padding-inline: clamp(18px, 1.6vw, 30px);
  font-size: 13px;
  font-weight: 700;
}

.cabecera__contacto,
.cabecera__red {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  line-height: 1;
}

.cabecera__contacto:hover,
.cabecera__contacto:focus-visible,
.cabecera__red:hover,
.cabecera__red:focus-visible {
  color: #f6d34b;
}

.cabecera__red {
  justify-content: center;
  width: 16px;
  font-size: 17px;
  font-weight: 800;
}

.icono-red-social {
  display: block;
  width: 100%;
  height: 100%;
  fill: currentColor;
}

.icono {
  font-size: 14px;
  line-height: 1;
}

.cabecera__principal {
  min-height: var(--altura-cabecera);
  background: var(--color-blanco);
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.04);
}

.cabecera__contenedor {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: min(100% - 32px, var(--ancho-contenido));
  min-height: var(--altura-cabecera);
  margin-inline: auto;
}

.marca {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  min-width: 190px;
  color: var(--color-azul-profundo);
}

.marca__logo {
  width: min(230px, 45vw);
  max-height: 68px;
  object-fit: contain;
}

.marca__simbolo {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  color: #f2c642;
  font-size: 30px;
  font-weight: 900;
  font-style: italic;
  border: 2px solid #c19a33;
  border-radius: 50%;
  text-shadow: 1px 1px 0 var(--color-azul-profundo);
}

.marca__texto {
  display: flex;
  flex-direction: column;
  line-height: 1.02;
}

.marca__nombre {
  color: var(--color-azul-profundo);
  font-size: 20px;
  font-weight: 900;
  letter-spacing: 0;
}

.marca__descripcion {
  color: #615b66;
  font-size: 8px;
  font-weight: 700;
}

.marca__lema {
  margin-top: 3px;
  color: #1f1f1f;
  font-size: 8px;
  font-style: italic;
  font-weight: 700;
}

.boton-menu {
  display: none;
  width: 42px;
  height: 42px;
  padding: 0;
  border: 1px solid rgba(28, 18, 99, 0.18);
  border-radius: 4px;
  background: var(--color-blanco);
  cursor: pointer;
}

.boton-menu__linea {
  display: block;
  width: 20px;
  height: 2px;
  margin: 5px auto;
  background: var(--color-azul-profundo);
  transition: transform var(--transicion-rapida), opacity var(--transicion-rapida);
}

.boton-menu[aria-expanded="true"] .boton-menu__linea:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.boton-menu[aria-expanded="true"] .boton-menu__linea:nth-child(2) {
  opacity: 0;
}

.boton-menu[aria-expanded="true"] .boton-menu__linea:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

.navegacion__lista {
  display: flex;
  align-items: center;
  gap: 27px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.navegacion__item {
  position: relative;
}

.navegacion__enlace {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 44px;
  color: #5c5c5c;
  font-size: 14px;
  font-weight: 700;
  white-space: nowrap;
  border: 0;
  background: transparent;
  cursor: pointer;
  transition: color var(--transicion-rapida);
}

.navegacion__enlace:hover,
.navegacion__enlace:focus-visible,
.navegacion__enlace--activo {
  color: var(--color-azul-activo);
}

.navegacion__boton {
  padding: 0;
}

.navegacion__flecha {
  font-size: 16px;
  transform: translateY(-1px);
}

.navegacion__sublista {
  position: absolute;
  inset-block-start: calc(100% + 8px);
  inset-inline-start: 0;
  min-width: 210px;
  margin: 0;
  padding: 8px 0;
  list-style: none;
  background: var(--color-blanco);
  border: 1px solid rgba(28, 18, 99, 0.1);
  border-radius: 6px;
  box-shadow: 0 16px 30px var(--color-sombra);
  opacity: 0;
  pointer-events: none;
  transform: translateY(8px);
  transition: opacity var(--transicion-rapida), transform var(--transicion-rapida);
}

.navegacion__sublista--amplia {
  min-width: min(365px, calc(100vw - 32px));
}

.navegacion__item--desplegable:hover .navegacion__sublista,
.navegacion__item--desplegable:focus-within .navegacion__sublista,
.navegacion__item--abierto .navegacion__sublista {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.navegacion__subenlace {
  display: block;
  padding: 10px 16px;
  color: var(--color-gris-texto);
  font-size: 14px;
  line-height: 1.35;
  font-weight: 700;
}

.navegacion__sublista--amplia .navegacion__subenlace {
  padding-block: 11px;
  border-bottom: 1px solid rgba(28, 18, 99, 0.18);
}

.navegacion__sublista--amplia li:last-child .navegacion__subenlace {
  border-bottom: 0;
}

.navegacion__subenlace:hover,
.navegacion__subenlace:focus-visible {
  color: var(--color-azul-activo);
  background: var(--color-gris-claro);
}

.navegacion__subenlace--activo {
  color: var(--color-azul-activo);
  background: var(--color-gris-claro);
  box-shadow: inset 4px 0 0 var(--color-naranja);
}

.hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  min-height: 486px;
  overflow: hidden;
}

.hero__contenido {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 486px;
  color: var(--color-blanco);
  background:
    linear-gradient(150deg, rgba(255, 255, 255, 0.025), transparent 35%),
    var(--color-azul-profundo);
}

.hero__contenido::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(145deg, transparent 0 58%, rgba(12, 8, 76, 0.32) 58% 100%);
  pointer-events: none;
}

.hero__texto {
  position: relative;
  z-index: 1;
  width: min(100% - 42px, 690px);
  margin-inline-start: clamp(24px, 6vw, 114px);
  padding-block: 58px;
}

.hero__etiqueta {
  margin: 0 0 12px;
  color: #ffb178;
  font-size: 13px;
  line-height: 1.4;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.hero__titulo {
  max-width: 680px;
  margin: 0 0 18px;
  color: var(--color-blanco);
  font-size: clamp(42px, 4.5vw, 64px);
  line-height: 1.02;
  font-weight: 900;
  letter-spacing: 0;
}

.hero__descripcion {
  max-width: 620px;
  margin: 0;
  color: rgba(255, 255, 255, 0.86);
  font-size: clamp(17px, 1.55vw, 20px);
  line-height: 1.65;
}

.hero__acciones {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 30px;
}

.hero__boton {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 184px;
  min-height: 50px;
  padding: 14px 22px;
  color: var(--color-naranja);
  background: var(--color-blanco);
  border-radius: 3px;
  font-size: 16px;
  font-weight: 800;
  letter-spacing: 0;
  text-align: center;
  transition: transform var(--transicion-rapida), box-shadow var(--transicion-rapida), background var(--transicion-rapida);
}

.hero__boton--secundario {
  color: var(--color-blanco);
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.58);
}

.hero__boton:hover,
.hero__boton:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.18);
}

.hero__boton--secundario:hover,
.hero__boton--secundario:focus-visible {
  background: rgba(255, 255, 255, 0.12);
}

.hero__indicadores {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  max-width: 640px;
  margin-top: 28px;
}

.hero__indicador {
  display: grid;
  gap: 4px;
  min-height: 76px;
  padding: 14px 16px;
  color: var(--color-blanco);
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 6px;
}

.hero__indicador strong {
  font-size: 15px;
  line-height: 1.25;
}

.hero__indicador span {
  color: rgba(255, 255, 255, 0.74);
  font-size: 13px;
  line-height: 1.35;
}

.hero__linea {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  margin: 26px 0 0;
  color: var(--color-blanco);
  font-size: clamp(22px, 2.2vw, 30px);
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: 0;
}

.hero__telefono {
  white-space: nowrap;
}

.hero__imagen {
  min-height: 486px;
  margin: 0;
  background: #d9d9d9;
}

.hero__imagen img {
  width: 100%;
  height: 100%;
  min-height: 486px;
  object-fit: cover;
  object-position: center;
}

.contenedor {
  width: min(100% - 32px, var(--ancho-contenido));
  margin-inline: auto;
}

section[id] {
  scroll-margin-top: calc(var(--altura-barra-superior) + var(--altura-cabecera));
}

.conocenos [id] {
  scroll-margin-top: calc(var(--altura-barra-superior) + var(--altura-cabecera) + 18px);
}

.seccion {
  padding-block: 72px;
  background: var(--color-blanco);
}

.seccion--presentacion {
  background: var(--color-gris-claro);
}

.seccion__etiqueta {
  margin: 0 0 10px;
  color: var(--color-naranja);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.seccion__titulo {
  margin: 0;
  color: var(--color-azul-profundo);
  font-size: clamp(28px, 3vw, 40px);
  line-height: 1.15;
  letter-spacing: 0;
}

.seccion__texto {
  max-width: 760px;
  margin: 18px 0 0;
  font-size: 17px;
  line-height: 1.7;
}

.conocenos {
  padding-block: 72px;
  background: var(--color-blanco);
}

.conocenos--pagina {
  min-height: 620px;
}

.conocenos__contenedor {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(320px, 0.95fr);
  gap: 32px 52px;
  align-items: start;
}

.conocenos__encabezado {
  grid-column: 1 / -1;
}

.conocenos__historia {
  padding: 30px 32px;
  color: var(--color-blanco);
  background: var(--color-azul-profundo);
  border-radius: 6px;
}

.conocenos__historia p,
.conocenos__tarjeta p,
.transporte p {
  margin: 0;
  line-height: 1.7;
}

.conocenos__subtitulo {
  margin: 0 0 16px;
  color: inherit;
  font-size: 25px;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: 0;
}

.conocenos__estrategia {
  display: grid;
  gap: 18px;
}

.conocenos__tarjeta {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 8px 16px;
  align-items: start;
  min-height: 170px;
  padding: 26px 28px;
  background: #eef2f7;
  border-left: 5px solid var(--color-naranja);
  border-radius: 6px;
}

.conocenos__icono,
.transporte__icono {
  display: inline-grid;
  place-items: center;
  color: var(--color-azul-profundo);
}

.conocenos__icono {
  width: 46px;
  height: 46px;
  grid-row: span 2;
}

.conocenos__icono svg,
.transporte__icono svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 3.2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.conocenos__tarjeta h2,
.conocenos__tarjeta h3 {
  margin: 0;
  color: #111923;
  font-size: 21px;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: 0;
}

.conocenos__flota {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(220px, 0.7fr) minmax(0, 1.3fr);
  gap: 28px 40px;
  align-items: start;
  padding-top: 12px;
}

.conocenos__transportes {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.transporte {
  min-height: 184px;
  padding: 25px 24px;
  background: var(--color-blanco);
  border: 1px solid rgba(28, 18, 99, 0.14);
  border-radius: 6px;
  box-shadow: 0 12px 30px rgba(20, 18, 50, 0.08);
}

.transporte__icono {
  width: 54px;
  height: 54px;
  margin-bottom: 17px;
}

.transporte h3,
.transporte h4 {
  margin: 0 0 10px;
  color: #111923;
  font-size: 18px;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: 0;
}

.pagina-interna {
  background: var(--color-blanco);
}

.pagina-hero {
  position: relative;
  overflow: hidden;
  padding-block: 74px 76px;
  color: var(--color-blanco);
  background:
    linear-gradient(90deg, rgba(16, 8, 56, 0.94), rgba(16, 8, 56, 0.76) 62%, rgba(237, 100, 0, 0.24)),
    linear-gradient(135deg, rgba(255, 255, 255, 0.08), transparent 38%),
    url("../img/S1%20(12).jpg") center / cover no-repeat;
}

.pagina-hero::after {
  content: "";
  position: absolute;
  inset-block: auto 0;
  inset-inline: 0;
  height: 7px;
  background: var(--color-naranja);
}

.pagina-hero__contenido {
  position: relative;
  z-index: 1;
}

.pagina-hero__etiqueta {
  margin: 0 0 13px;
  color: #ffb178;
  font-size: 13px;
  line-height: 1.4;
  font-weight: 800;
  text-transform: uppercase;
}

.pagina-hero h1 {
  max-width: 850px;
  margin: 0;
  color: var(--color-blanco);
  font-size: 42px;
  line-height: 1.15;
  font-weight: 900;
  letter-spacing: 0;
}

.pagina-hero p:last-child {
  max-width: 820px;
  margin: 20px 0 0;
  color: rgba(255, 255, 255, 0.86);
  font-size: 18px;
  line-height: 1.72;
}

.pagina-contenido {
  padding-block: 62px 78px;
}

.pagina-contenido__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 282px;
  gap: 42px;
  align-items: start;
}

.pagina-principal {
  display: grid;
  gap: 28px;
  min-width: 0;
}

.pagina-seccion {
  min-width: 0;
}

.pagina-seccion--intro {
  padding: 0 0 28px;
  border-bottom: 1px solid rgba(28, 18, 99, 0.16);
}

.pagina-seccion--compacta {
  padding: 30px 32px;
  background: #eef2f7;
  border-radius: 6px;
}

.pagina-seccion h2,
.pagina-bloque h3,
.pagina-tarjeta h3 {
  margin: 0;
  color: #111923;
  line-height: 1.22;
  font-weight: 800;
  letter-spacing: 0;
}

.pagina-seccion h2 {
  font-size: 27px;
}

.pagina-seccion p {
  max-width: 850px;
  margin: 16px 0 0;
  font-size: 17px;
  line-height: 1.72;
}

.pagina-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.pagina-seccion--visual {
  padding-bottom: 6px;
}

.pagina-galeria-flota {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  grid-auto-rows: 178px;
  gap: 16px;
  margin-top: 22px;
}

.pagina-galeria-flota__item {
  position: relative;
  min-width: 0;
  min-height: 0;
  margin: 0;
  overflow: hidden;
  background: #111923;
  border-radius: 6px;
  box-shadow: 0 14px 30px rgba(20, 18, 50, 0.1);
}

.pagina-galeria-flota__item--amplio {
  grid-row: span 2;
}

.pagina-galeria-flota__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.pagina-galeria-flota__item figcaption {
  position: absolute;
  inset-inline: 0;
  inset-block-end: 0;
  padding: 36px 16px 14px;
  color: var(--color-blanco);
  background: linear-gradient(180deg, transparent, rgba(16, 8, 56, 0.9));
  font-size: 15px;
  line-height: 1.35;
  font-weight: 800;
}

.pagina-tarjeta {
  min-height: 210px;
  padding: 26px 24px;
  background: var(--color-blanco);
  border: 1px solid rgba(28, 18, 99, 0.14);
  border-radius: 6px;
  box-shadow: 0 14px 30px rgba(20, 18, 50, 0.08);
}

.pagina-tarjeta__marca {
  display: block;
  width: 38px;
  height: 5px;
  margin-bottom: 21px;
  background: var(--color-naranja);
  border-radius: 999px;
}

.pagina-tarjeta h3 {
  font-size: 20px;
}

.pagina-tarjeta p,
.pagina-bloque p,
.pagina-linea-tiempo__item p {
  margin: 12px 0 0;
  line-height: 1.68;
}

.pagina-bloques {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.pagina-bloque {
  padding: 28px 30px;
  color: var(--color-blanco);
  background: var(--color-azul-profundo);
  border-radius: 6px;
}

.pagina-bloque h3,
.pagina-bloque p {
  color: inherit;
}

.pagina-lista {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 22px;
  margin: 22px 0 0;
  padding: 0;
  list-style: none;
}

.pagina-lista li {
  position: relative;
  min-height: 28px;
  padding-left: 27px;
  color: #1f2d3b;
  line-height: 1.55;
  font-weight: 700;
}

.pagina-lista li::before {
  content: "";
  position: absolute;
  inset-block-start: 8px;
  inset-inline-start: 0;
  width: 10px;
  height: 10px;
  background: var(--color-naranja);
  border-radius: 50%;
}

.pagina-lista--texto {
  grid-template-columns: 1fr;
}

.pagina-lista--texto li {
  font-weight: 500;
}

.pagina-lista--texto strong {
  color: var(--color-azul-profundo);
  font-weight: 800;
}

.pagina-mapas {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-top: 24px;
}

.pagina-mapa {
  min-width: 0;
  overflow: hidden;
  background: var(--color-blanco);
  border: 1px solid rgba(28, 18, 99, 0.14);
  border-radius: 6px;
}

.pagina-mapa iframe {
  display: block;
  width: 100%;
  min-height: 320px;
  aspect-ratio: 16 / 11;
  border: 0;
}

.pagina-mapa__contenido {
  padding: 18px 20px 20px;
}

.pagina-mapa__contenido h3 {
  margin: 0;
  color: var(--color-azul-profundo);
  font-size: 19px;
  line-height: 1.25;
  font-weight: 900;
}

.pagina-mapa__contenido p {
  margin-top: 10px;
  font-size: 15px;
  line-height: 1.55;
}

.pagina-mapa__enlace {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  margin-top: 14px;
  padding: 9px 14px;
  color: var(--color-blanco);
  background: var(--color-azul-profundo);
  border-radius: 4px;
  font-size: 14px;
  line-height: 1.2;
  font-weight: 800;
}

.pagina-mapa__enlace:hover,
.pagina-mapa__enlace:focus-visible {
  background: var(--color-azul-activo);
}

.pagina-linea-tiempo {
  display: grid;
  gap: 16px;
  margin-top: 24px;
}

.pagina-linea-tiempo__item {
  padding: 22px 24px;
  background: var(--color-blanco);
  border-left: 5px solid var(--color-naranja);
  border-radius: 6px;
}

.pagina-linea-tiempo__item span {
  display: block;
  color: var(--color-azul-profundo);
  font-size: 18px;
  line-height: 1.2;
  font-weight: 900;
}

.pagina-tabla-contenedor {
  margin-top: 24px;
  overflow-x: auto;
  border: 1px solid rgba(28, 18, 99, 0.14);
  border-radius: 6px;
  background: var(--color-blanco);
}

.pagina-tabla {
  width: 100%;
  min-width: 640px;
  border-collapse: collapse;
}

.pagina-tabla th,
.pagina-tabla td {
  padding: 16px 18px;
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid rgba(28, 18, 99, 0.12);
}

.pagina-tabla th {
  color: var(--color-blanco);
  background: var(--color-azul-profundo);
  font-size: 14px;
  line-height: 1.3;
}

.pagina-tabla td {
  color: #1f2d3b;
  line-height: 1.55;
}

.pagina-tabla tbody tr:last-child td {
  border-bottom: 0;
}

.pagina-lateral {
  position: sticky;
  top: calc(var(--altura-barra-superior) + var(--altura-cabecera) + 24px);
  padding: 26px 24px;
  background: #eef2f7;
  border-radius: 6px;
}

.pagina-lateral h2 {
  margin: 0 0 17px;
  color: var(--color-azul-profundo);
  font-size: 18px;
  line-height: 1.25;
  font-weight: 900;
  letter-spacing: 0;
}

.pagina-lateral__nav {
  display: grid;
  gap: 8px;
}

.pagina-lateral__nav a {
  display: block;
  padding: 10px 12px;
  color: #26313d;
  background: var(--color-blanco);
  border-left: 4px solid transparent;
  border-radius: 4px;
  font-size: 14px;
  line-height: 1.35;
  font-weight: 700;
  transition: color var(--transicion-rapida), border-color var(--transicion-rapida), transform var(--transicion-rapida);
}

.pagina-lateral__nav a:hover,
.pagina-lateral__nav a:focus-visible {
  color: var(--color-azul-activo);
  border-color: var(--color-naranja);
  transform: translateX(2px);
}

.pagina-lateral__boton {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 44px;
  margin-top: 20px;
  padding: 11px 16px;
  color: var(--color-blanco);
  background: var(--color-naranja);
  border-radius: 3px;
  font-size: 14px;
  line-height: 1.2;
  font-weight: 800;
  text-align: center;
  transition: transform var(--transicion-rapida), box-shadow var(--transicion-rapida);
}

.pagina-lateral__boton:hover,
.pagina-lateral__boton:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 12px 20px rgba(237, 100, 0, 0.25);
}

.servicios {
  padding-block: 50px 42px;
  background:
    linear-gradient(180deg, rgba(238, 242, 247, 0.96), rgba(238, 242, 247, 0.9)),
    url("../img/S1%20(10).jpg") center / cover no-repeat;
}

.servicios__contenedor {
  max-width: 1040px;
}

.servicios__encabezado {
  max-width: 680px;
  margin-inline: auto;
  text-align: center;
}

.servicios__titulo {
  margin: 0;
  color: #20242a;
  font-size: clamp(30px, 2.9vw, 38px);
  line-height: 1.18;
  font-weight: 800;
  letter-spacing: 0;
}

.servicios__descripcion {
  max-width: 620px;
  margin: 12px auto 0;
  color: #48515b;
  font-size: 16px;
  line-height: 1.56;
}

.servicios__tarjetas {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  justify-content: center;
  gap: 20px;
  margin-top: 28px;
}

.tarjeta-servicio {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  overflow: hidden;
  background: var(--color-blanco);
  border: 1px solid rgba(28, 18, 99, 0.12);
  border-radius: 6px;
  box-shadow: 0 14px 30px rgba(20, 18, 50, 0.08);
}

.tarjeta-servicio__media {
  position: relative;
  display: grid;
  place-items: center;
  margin: 0;
  aspect-ratio: 3 / 1;
  overflow: hidden;
  background: #111923;
}

.tarjeta-servicio__media figcaption {
  position: absolute;
  inset-block-start: 14px;
  inset-inline-start: 14px;
  min-height: 30px;
  padding: 7px 11px;
  color: var(--color-blanco);
  background: rgba(16, 8, 56, 0.86);
  border-radius: 3px;
  font-size: 12px;
  line-height: 1.2;
  font-weight: 800;
  text-transform: uppercase;
}

.tarjeta-servicio__contenido {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 18px 22px 20px;
}

.tarjeta-servicio__titulo {
  margin: 0;
  color: #111923;
  font-size: 24px;
  line-height: 1.25;
  font-weight: 800;
  letter-spacing: 0;
}

.tarjeta-servicio__resumen {
  margin: 6px 0 0;
  color: #48515b;
  font-size: 14px;
  line-height: 1.5;
}

.tarjeta-servicio__imagen {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

.tarjeta-servicio__acordeon {
  margin-top: 10px;
  margin-bottom: 14px;
}

.tarjeta-servicio .acordeon__boton {
  min-height: 38px;
}

.tarjeta-servicio .acordeon__contenido p {
  padding-bottom: 12px;
  font-size: 12px;
  line-height: 1.55;
}

.tarjeta-servicio .acordeon__item--abierto .acordeon__contenido {
  max-height: 520px;
}

.tarifas-encomiendas {
  padding: 0 0 14px;
}

.tarifas-encomiendas p {
  padding-right: 0;
}

.tarifas-encomiendas table {
  width: 100%;
  margin-top: 8px;
  border-collapse: collapse;
  overflow: hidden;
  border: 1px solid rgba(28, 18, 99, 0.12);
  border-radius: 4px;
  font-size: 12px;
}

.tarifas-encomiendas th,
.tarifas-encomiendas td {
  padding: 7px 9px;
  text-align: left;
  border-bottom: 1px solid rgba(28, 18, 99, 0.1);
}

.tarifas-encomiendas th {
  color: var(--color-blanco);
  background: var(--color-azul-profundo);
  font-weight: 800;
}

.tarifas-encomiendas td:last-child {
  color: #1d252d;
  font-weight: 800;
  white-space: nowrap;
}

.tarifas-encomiendas tbody tr:last-child td {
  border-bottom: 0;
}

.acordeon__item {
  border-bottom: 1px solid #d8d8d8;
}

.acordeon__boton {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: 49px;
  padding: 0;
  color: #1d252d;
  font-size: 12px;
  font-weight: 700;
  text-align: left;
  background: transparent;
  border: 0;
  cursor: pointer;
}

.acordeon__boton:hover,
.acordeon__boton:focus-visible {
  color: var(--color-naranja);
}

.acordeon__icono {
  position: relative;
  flex: 0 0 auto;
  display: inline-grid;
  place-items: center;
  width: 13px;
  height: 13px;
  margin-left: 14px;
  background: #cccccc;
  border-radius: 50%;
}

.acordeon__icono::before,
.acordeon__icono::after {
  content: "";
  position: absolute;
  width: 7px;
  height: 1px;
  background: var(--color-blanco);
  transition: transform var(--transicion-rapida), opacity var(--transicion-rapida);
}

.acordeon__icono::after {
  transform: rotate(90deg);
}

.acordeon__contenido {
  max-height: 0;
  overflow: hidden;
  color: #59616a;
  transition: max-height 240ms ease;
}

.acordeon__contenido p {
  margin: 0;
  padding: 0 25px 16px 0;
  font-size: 13px;
  line-height: 1.65;
}

.acordeon__item--abierto .acordeon__boton {
  color: var(--color-naranja);
}

.acordeon__item--abierto .acordeon__contenido {
  max-height: 180px;
}

.acordeon__item--abierto .acordeon__icono {
  background: var(--color-naranja);
}

.acordeon__item--abierto .acordeon__icono::after {
  opacity: 0;
  transform: rotate(0deg);
}

.tarjeta-servicio__boton {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 162px;
  min-height: 38px;
  margin-top: auto;
  padding: 9px 18px;
  color: var(--color-blanco);
  background: #ed6400;
  border-radius: 3px;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 2px;
  text-align: center;
  transition: transform var(--transicion-rapida), box-shadow var(--transicion-rapida);
}

.tarjeta-servicio__boton:hover,
.tarjeta-servicio__boton:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 12px 20px rgba(237, 100, 0, 0.25);
}

.beneficios {
  padding-block: 79px 102px;
  background: #eef2f7;
}

.beneficios__contenedor {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 58px;
  width: min(100% - 48px, 1320px);
}

.beneficio {
  text-align: center;
}

.beneficio__icono {
  display: inline-grid;
  place-items: center;
  width: 76px;
  height: 76px;
  margin: 0 auto 19px;
  color: var(--color-azul-profundo);
}

.beneficio__icono svg {
  width: 100%;
  height: 100%;
  overflow: visible;
  fill: none;
  stroke: currentColor;
  stroke-width: 3.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.beneficio__titulo {
  min-height: 22px;
  margin: 0 0 14px;
  color: #111923;
  font-size: 17px;
  line-height: 1.3;
  font-weight: 800;
  letter-spacing: 0;
}

.beneficio__texto {
  max-width: 310px;
  min-height: 48px;
  margin: 0 auto;
  color: #48515b;
  font-size: 16px;
  line-height: 1.75;
}

.beneficio__enlace {
  display: inline-flex;
  margin-top: 5px;
  color: #4b5360;
  font-size: 16px;
  line-height: 1.7;
  transition: color var(--transicion-rapida);
}

.beneficio__enlace:hover,
.beneficio__enlace:focus-visible {
  color: var(--color-naranja);
}

.paradas-autorizadas {
  grid-column: 1 / -1;
  display: grid;
  gap: 28px;
  margin-top: 10px;
}

.paradas-autorizadas__encabezado {
  max-width: 820px;
  margin-inline: auto;
  text-align: center;
}

.paradas-autorizadas__encabezado h2 {
  margin: 0;
  color: #111923;
  font-size: clamp(30px, 2.8vw, 36px);
  line-height: 1.22;
  font-weight: 900;
  letter-spacing: 0;
}

.paradas-autorizadas__encabezado p:last-child {
  margin: 14px 0 0;
  color: #48515b;
  font-size: 17px;
  line-height: 1.72;
}

.paradas-autorizadas__mapas {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
}

.parada-mapa {
  min-width: 0;
  overflow: hidden;
  background: var(--color-blanco);
  border: 1px solid rgba(28, 18, 99, 0.14);
  border-radius: 6px;
  box-shadow: 0 14px 30px rgba(20, 18, 50, 0.08);
}

.parada-mapa iframe {
  display: block;
  width: 100%;
  min-height: 360px;
  aspect-ratio: 16 / 10;
  border: 0;
}

.parada-mapa__contenido {
  padding: 18px 20px 20px;
  text-align: left;
}

.parada-mapa__contenido h3 {
  margin: 0;
  color: var(--color-azul-profundo);
  font-size: 19px;
  line-height: 1.25;
  font-weight: 900;
  letter-spacing: 0;
}

.parada-mapa__contenido p {
  margin: 9px 0 0;
  color: #48515b;
  font-size: 15px;
  line-height: 1.55;
}

.testimoniales {
  padding-block: 49px 63px;
  background:
    linear-gradient(90deg, rgba(16, 8, 56, 0.9), rgba(16, 8, 56, 0.68)),
    url("../img/S1%20(8).jpg") center / cover no-repeat;
}

.testimoniales__contenedor {
  width: min(100% - 48px, 900px);
}

.testimoniales__titulo {
  margin: 0 0 36px;
  color: var(--color-blanco);
  font-size: clamp(30px, 2.8vw, 34px);
  line-height: 1.25;
  font-weight: 800;
  text-align: center;
  letter-spacing: 0;
}

.testimoniales__lista {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 72px;
}

.testimonio {
  text-align: center;
}

.testimonio__icono {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  margin-bottom: 17px;
  color: var(--color-naranja);
  font-size: 20px;
  line-height: 1;
  font-weight: 800;
  border: 2px solid var(--color-naranja);
  border-radius: 50%;
}

.testimonio__texto {
  max-width: 250px;
  min-height: 44px;
  margin: 0 auto;
  color: rgba(255, 255, 255, 0.88);
  font-size: 13px;
  line-height: 1.8;
}

.testimonio__autor {
  margin: 4px 0 0;
  color: var(--color-blanco);
  font-size: 13px;
  line-height: 1.6;
  font-weight: 800;
}

.galeria {
  padding-block: 68px 76px;
  background: #eef2f7;
}

.galeria__contenedor {
  display: grid;
  gap: 34px;
}

.galeria__encabezado {
  max-width: 760px;
}

.galeria__grid {
  display: grid;
  grid-template-columns: 1.35fr 0.85fr;
  grid-auto-rows: 260px;
  gap: 18px;
}

.galeria__item {
  position: relative;
  min-width: 0;
  min-height: 0;
  margin: 0;
  overflow: hidden;
  background: var(--color-blanco);
  border-radius: 6px;
  box-shadow: 0 14px 30px rgba(20, 18, 50, 0.1);
}

.galeria__item--amplio {
  grid-row: span 2;
}

.galeria__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.galeria__item:not(.galeria__item--amplio) img {
  object-fit: contain;
  padding: 24px;
  background: var(--color-blanco);
}

.galeria__item.galeria__item--foto img {
  object-fit: cover;
  padding: 0;
  background: transparent;
}

.galeria__item--marca img {
  object-fit: cover;
  padding: 0;
}

.galeria__item figcaption {
  position: absolute;
  inset-inline: 0;
  inset-block-end: 0;
  padding: 14px 18px;
  color: var(--color-blanco);
  background: linear-gradient(180deg, transparent, rgba(16, 8, 56, 0.9));
  font-size: 15px;
  line-height: 1.35;
  font-weight: 800;
}

.galeria__boton {
  justify-self: start;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 12px 20px;
  color: var(--color-blanco);
  background: var(--color-azul-profundo);
  border-radius: 3px;
  font-size: 14px;
  line-height: 1.2;
  font-weight: 800;
  transition: transform var(--transicion-rapida), box-shadow var(--transicion-rapida), background var(--transicion-rapida);
}

.galeria__boton:hover,
.galeria__boton:focus-visible {
  background: var(--color-naranja);
  transform: translateY(-2px);
  box-shadow: 0 12px 20px rgba(237, 100, 0, 0.25);
}

.galeria-pagina {
  padding-block: 64px 80px;
  background:
    linear-gradient(180deg, rgba(238, 242, 247, 0.96), rgba(238, 242, 247, 0.88)),
    url("../img/S1%20(9).jpg") center / cover no-repeat;
}

.galeria-pagina__contenedor {
  display: grid;
  gap: 32px;
}

.galeria-pagina__encabezado {
  max-width: 780px;
}

.carrusel {
  display: grid;
  gap: 18px;
}

.carrusel__visor {
  position: relative;
  min-height: 560px;
  overflow: hidden;
  background: var(--color-azul-profundo);
  border-radius: 6px;
  box-shadow: 0 18px 38px rgba(20, 18, 50, 0.18);
}

.carrusel__diapositiva {
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity 320ms ease;
}

.carrusel__diapositiva--activa {
  opacity: 1;
  pointer-events: auto;
}

.carrusel__diapositiva img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.carrusel__diapositiva img[src$="sotraIMG.png"] {
  object-fit: contain;
  padding: 44px;
  background: var(--color-blanco);
}

.carrusel__texto {
  position: absolute;
  inset-inline: 0;
  inset-block-end: 0;
  max-width: 700px;
  padding: 72px 34px 30px;
  color: var(--color-blanco);
  background: linear-gradient(180deg, transparent, rgba(16, 8, 56, 0.92));
}

.carrusel__texto h3 {
  margin: 0;
  color: var(--color-blanco);
  font-size: 27px;
  line-height: 1.2;
  font-weight: 900;
  letter-spacing: 0;
}

.carrusel__texto p {
  max-width: 610px;
  margin: 12px 0 0;
  color: rgba(255, 255, 255, 0.86);
  font-size: 16px;
  line-height: 1.65;
}

.carrusel__controles {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) 48px;
  gap: 16px;
  align-items: center;
}

.carrusel__boton {
  display: inline-grid;
  place-items: center;
  width: 48px;
  height: 48px;
  padding: 0;
  color: var(--color-blanco);
  background: var(--color-azul-profundo);
  border: 0;
  border-radius: 4px;
  cursor: pointer;
  transition: transform var(--transicion-rapida), background var(--transicion-rapida);
}

.carrusel__boton:hover,
.carrusel__boton:focus-visible {
  background: var(--color-naranja);
  transform: translateY(-2px);
}

.carrusel__boton span {
  font-size: 34px;
  line-height: 1;
  transform: translateY(-2px);
}

.carrusel__indicadores {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.carrusel__indicador {
  width: 38px;
  height: 5px;
  padding: 0;
  background: rgba(28, 18, 99, 0.24);
  border: 0;
  border-radius: 999px;
  cursor: pointer;
  transition: background var(--transicion-rapida), transform var(--transicion-rapida);
}

.carrusel__indicador--activo,
.carrusel__indicador:hover,
.carrusel__indicador:focus-visible {
  background: var(--color-naranja);
  transform: translateY(-1px);
}

.contacto-preguntas {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 620px;
}

.contacto-preguntas__columna {
  min-width: 0;
}

.contacto-preguntas__columna--preguntas {
  display: flex;
  justify-content: flex-end;
  padding: 72px 86px 78px 24px;
  background:
    linear-gradient(148deg, rgba(255, 255, 255, 0.95), rgba(255, 255, 255, 0.84)),
    url("../img/S1%20(10).jpg") center / cover no-repeat;
}

.contacto-preguntas__columna--formulario {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 72px 24px 78px 86px;
  color: var(--color-blanco);
  background:
    linear-gradient(90deg, rgba(28, 18, 99, 0.94), rgba(28, 18, 99, 0.82)),
    url("../img/tAXISFT.jpg") center / cover no-repeat;
}

.contacto-directo {
  width: min(100%, 650px);
}

.contacto-directo__etiqueta,
.formulario-contacto__etiqueta-superior {
  margin: 0 0 10px;
  color: var(--color-naranja);
  font-size: 13px;
  line-height: 1.4;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.formulario-contacto__etiqueta-superior {
  color: #ffb178;
}

.contacto-directo__titulo {
  margin: 0;
  color: #20242a;
  font-size: clamp(32px, 3.3vw, 44px);
  line-height: 1.08;
  font-weight: 900;
  letter-spacing: 0;
}

.contacto-directo__texto {
  max-width: 600px;
  margin: 18px 0 0;
  color: #48515b;
  font-size: 17px;
  line-height: 1.72;
}

.contacto-directo__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-top: 28px;
}

.contacto-canal {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 14px;
  align-items: center;
  min-height: 104px;
  padding: 20px;
  color: #1f2d3b;
  background: var(--color-blanco);
  border: 1px solid rgba(28, 18, 99, 0.12);
  border-radius: 6px;
  box-shadow: 0 14px 30px rgba(20, 18, 50, 0.08);
  transition: transform var(--transicion-rapida), box-shadow var(--transicion-rapida), border-color var(--transicion-rapida);
}

.contacto-canal:hover,
.contacto-canal:focus-visible {
  border-color: rgba(237, 100, 0, 0.42);
  transform: translateY(-2px);
  box-shadow: 0 18px 34px rgba(20, 18, 50, 0.14);
}

.contacto-canal__icono {
  display: inline-grid;
  place-items: center;
  width: 44px;
  height: 44px;
  color: var(--color-blanco);
  background: var(--color-azul-profundo);
  border-radius: 4px;
  font-size: 18px;
  line-height: 1;
  font-weight: 900;
}

.contacto-canal__contenido {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.contacto-canal__contenido strong {
  color: #111923;
  font-size: 15px;
  line-height: 1.25;
}

.contacto-canal__contenido span {
  overflow-wrap: anywhere;
  color: #48515b;
  font-size: 14px;
  line-height: 1.35;
}

.contacto-directo__alerta {
  margin-top: 24px;
  padding: 18px 20px;
  color: #1f2d3b;
  background: #fff8ed;
  border-left: 5px solid var(--color-naranja);
  border-radius: 6px;
  font-size: 15px;
  line-height: 1.65;
}

.contacto-directo__alerta strong {
  color: #111923;
}

.preguntas-frecuentes {
  width: min(100%, 724px);
}

.preguntas-frecuentes__titulo,
.formulario-contacto__titulo {
  margin: 0 0 19px;
  font-size: 24px;
  line-height: 1.35;
  font-weight: 800;
  letter-spacing: 0;
}

.preguntas-frecuentes__titulo {
  color: #20242a;
}

.preguntas-frecuentes__lista {
  display: grid;
  gap: 8px;
}

.preguntas-frecuentes .acordeon__item {
  border: 0;
  background: var(--color-blanco);
}

.preguntas-frecuentes .acordeon__boton {
  min-height: 56px;
  padding: 0 15px 0 17px;
  font-size: 12px;
}

.preguntas-frecuentes .acordeon__contenido p {
  padding: 0 36px 23px 17px;
  color: #1f2d3b;
  font-size: 13px;
  line-height: 1.7;
}

.preguntas-frecuentes .acordeon__item--abierto .acordeon__contenido {
  max-height: 130px;
}

.formulario-contacto {
  display: grid;
  align-content: start;
  gap: 20px;
  width: min(100%, 560px);
}

.formulario-contacto__titulo {
  margin-bottom: 4px;
  color: var(--color-blanco);
}

.formulario-contacto__fila {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.formulario-contacto__campo {
  display: grid;
  gap: 8px;
  margin-top: 0;
}

.formulario-contacto__etiqueta {
  color: var(--color-blanco);
  font-size: 14px;
  line-height: 1.35;
  font-weight: 700;
}

.formulario-contacto__control {
  width: 100%;
  min-height: 42px;
  padding: 8px 0 7px;
  color: var(--color-blanco);
  font: inherit;
  font-size: 16px;
  line-height: 1.4;
  background: transparent;
  border: 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.24);
  border-radius: 0;
  outline: 0;
}

.formulario-contacto__control::placeholder {
  color: rgba(255, 255, 255, 0.58);
}

.formulario-contacto__control:focus {
  border-bottom-color: var(--color-blanco);
}

.formulario-contacto__control option {
  color: #111923;
}

.formulario-contacto__control--mensaje {
  min-height: 118px;
  resize: vertical;
}

.formulario-contacto__campo--antibot {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

.formulario-contacto__nota {
  margin: 0;
  color: rgba(255, 255, 255, 0.74);
  font-size: 13px;
  line-height: 1.6;
}

.formulario-contacto__acciones {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 12px;
  margin-top: 2px;
}

.formulario-contacto__boton {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 168px;
  min-height: 48px;
  padding: 12px 24px;
  color: #111923;
  background: var(--color-blanco);
  border: 0;
  border-radius: 3px;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 1px;
  cursor: pointer;
  transition: transform var(--transicion-rapida), box-shadow var(--transicion-rapida);
}

.formulario-contacto__whatsapp {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 124px;
  min-height: 48px;
  padding: 12px 22px;
  color: var(--color-blanco);
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.54);
  border-radius: 3px;
  font-size: 15px;
  line-height: 1.2;
  font-weight: 700;
  transition: transform var(--transicion-rapida), background var(--transicion-rapida);
}

.formulario-contacto__boton:hover,
.formulario-contacto__boton:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.22);
}

.formulario-contacto__whatsapp:hover,
.formulario-contacto__whatsapp:focus-visible {
  background: rgba(255, 255, 255, 0.12);
  transform: translateY(-2px);
}

.formulario-contacto__estado {
  min-height: 20px;
  margin: 0;
  color: #ffcc99;
  font-size: 13px;
  line-height: 1.5;
}

.pie-pagina {
  color: var(--color-blanco);
  background: #ed6400;
}

.pie-pagina__contenido {
  display: grid;
  grid-template-columns: 1.25fr 1fr 0.9fr 0.95fr 1fr 0.75fr;
  gap: 34px;
  width: min(100% - 48px, 1320px);
  margin-inline: auto;
  padding-block: 52px 46px;
}

.pie-pagina__seccion {
  min-width: 0;
}

.pie-pagina__marca,
.pie-pagina__titulo,
.pie-pagina__texto,
.pie-pagina__texto-fuerte,
.pie-pagina__frase,
.pie-pagina__derechos,
.pie-pagina__institucional {
  margin: 0;
}

.pie-pagina__marca {
  color: var(--color-blanco);
  font-size: 24px;
  line-height: 1.15;
  font-weight: 900;
  letter-spacing: 0;
}

.pie-pagina__titulo {
  margin-bottom: 16px;
  color: var(--color-blanco);
  font-size: 16px;
  line-height: 1.3;
  font-weight: 800;
  letter-spacing: 0;
}

.pie-pagina__texto,
.pie-pagina__frase,
.pie-pagina__lista,
.pie-pagina__lista-contacto {
  color: rgba(255, 255, 255, 0.82);
  font-size: 14px;
  line-height: 1.65;
}

.pie-pagina__texto-fuerte {
  margin-top: 10px;
  color: var(--color-blanco);
  font-size: 14px;
  line-height: 1.5;
  font-weight: 800;
}

.pie-pagina__frase {
  margin-top: 18px;
  max-width: 280px;
}

.pie-pagina__lista,
.pie-pagina__lista-contacto {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.pie-pagina__lista-contacto {
  font-style: normal;
}

.pie-pagina__lista a,
.pie-pagina__lista-contacto a {
  color: inherit;
  transition: color var(--transicion-rapida);
}

.pie-pagina__lista a:hover,
.pie-pagina__lista a:focus-visible,
.pie-pagina__lista-contacto a:hover,
.pie-pagina__lista-contacto a:focus-visible {
  color: var(--color-blanco);
}

.pie-pagina__boton,
.pie-pagina__boton-secundario {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  margin-top: 18px;
  padding: 11px 18px;
  border-radius: 3px;
  font-size: 13px;
  line-height: 1.2;
  font-weight: 800;
  text-align: center;
  transition: transform var(--transicion-rapida), box-shadow var(--transicion-rapida);
}

.pie-pagina__boton {
  color: #111923;
  background: var(--color-blanco);
}

.pie-pagina__boton-secundario {
  color: #111923;
  background: var(--color-blanco);
  border: 1px solid var(--color-blanco);
}

.pie-pagina__boton:hover,
.pie-pagina__boton:focus-visible,
.pie-pagina__boton-secundario:hover,
.pie-pagina__boton-secundario:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.22);
}

.pie-pagina__barra {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-height: 54px;
  padding: 12px max(24px, calc((100vw - 1320px) / 2 + 24px));
  background: #100838;
}

.pie-pagina__derechos {
  color: var(--color-blanco);
  font-size: 13px;
  line-height: 1.4;
  font-weight: 700;
}

.pie-pagina__institucional {
  color: rgba(255, 255, 255, 0.72);
  font-size: 13px;
  line-height: 1.4;
  text-align: right;
}

.pie-pagina__redes {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
}

.pie-pagina__red {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  color: var(--color-blanco);
  transition: color var(--transicion-rapida), transform var(--transicion-rapida);
}

.pie-pagina__red:hover,
.pie-pagina__red:focus-visible {
  color: #f6d34b;
  transform: translateY(-1px);
}

.pie-pagina__red--facebook {
  width: 26px;
  height: 26px;
}

.pie-pagina__red--instagram {
  width: 26px;
  height: 26px;
}

.pie-pagina__red--whatsapp {
  width: 28px;
  height: 28px;
  border: 2px solid currentColor;
  border-radius: 50%;
  font-size: 14px;
  line-height: 1;
  font-weight: 900;
}

@media (max-width: 1080px) {
  .navegacion__lista {
    gap: 18px;
  }

  .navegacion__enlace {
    font-size: 13px;
  }

  .contacto-preguntas__columna--preguntas {
    padding-right: 48px;
  }

  .contacto-preguntas__columna--formulario {
    padding-left: 48px;
  }

  .pie-pagina__contenido {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  :root {
    --altura-cabecera: 72px;
  }

  .cabecera__contenedor {
    position: relative;
  }

  .boton-menu {
    display: block;
  }

  .navegacion {
    position: absolute;
    inset-block-start: 100%;
    inset-inline: 0;
    background: var(--color-blanco);
    border-top: 1px solid rgba(28, 18, 99, 0.08);
    box-shadow: 0 18px 30px var(--color-sombra);
    opacity: 0;
    pointer-events: none;
    transform: translateY(-8px);
    transition: opacity var(--transicion-rapida), transform var(--transicion-rapida);
  }

  .navegacion--abierta {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
  }

  .navegacion__lista {
    display: block;
    padding: 10px 0;
  }

  .navegacion__enlace {
    justify-content: space-between;
    width: 100%;
    min-height: 46px;
    padding: 0 18px;
    font-size: 15px;
  }

  .navegacion__boton {
    text-align: left;
  }

  .navegacion__sublista {
    position: static;
    display: none;
    min-width: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    opacity: 1;
    pointer-events: auto;
    transform: none;
  }

  .navegacion__item--abierto .navegacion__sublista {
    display: block;
  }

  .navegacion__subenlace {
    padding: 11px 30px;
    background: var(--color-gris-claro);
  }

  .hero {
    grid-template-columns: 1fr;
  }

  .hero__contenido,
  .hero__imagen,
  .hero__imagen img {
    min-height: auto;
  }

  .hero__contenido {
    align-items: flex-start;
  }

  .hero__texto {
    width: min(100% - 36px, 680px);
    margin-inline: auto;
    padding-block: 76px 64px;
  }

  .hero__imagen img {
    aspect-ratio: 16 / 9;
  }

  .conocenos__contenedor {
    grid-template-columns: 1fr;
  }

  .conocenos__flota {
    grid-template-columns: 1fr;
  }

  .pagina-contenido__grid {
    grid-template-columns: 1fr;
  }

  .pagina-galeria-flota {
    grid-auto-rows: 220px;
  }

  .pagina-lateral {
    position: static;
  }

  .servicios {
    padding-block: 42px 34px;
  }

  .servicios__tarjetas {
    grid-template-columns: minmax(0, 520px);
    gap: 18px;
  }

  .tarjeta-servicio {
    min-height: 0;
  }

  .beneficios__contenedor {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 42px 36px;
  }

  .testimoniales__lista {
    gap: 34px;
  }

  .galeria__grid {
    grid-template-columns: 1fr;
    grid-auto-rows: auto;
  }

  .galeria__item,
  .galeria__item--amplio {
    grid-row: auto;
    aspect-ratio: 16 / 9;
  }

  .carrusel__visor {
    min-height: 460px;
  }

  .contacto-preguntas {
    grid-template-columns: 1fr;
  }

  .contacto-preguntas__columna--preguntas,
  .contacto-preguntas__columna--formulario {
    justify-content: center;
    padding-inline: 24px;
  }

  .preguntas-frecuentes,
  .contacto-directo,
  .formulario-contacto {
    width: min(100%, 724px);
  }

  .pie-pagina__contenido {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .pie-pagina__barra {
    flex-direction: column;
    gap: 10px;
    padding-block: 14px;
  }

  .pie-pagina__redes {
    position: static;
  }

  .pie-pagina__institucional {
    text-align: center;
  }
}

@media (max-width: 620px) {
  .cabecera__contactos {
    flex-wrap: wrap;
    gap: 9px 14px;
    padding-block: 8px;
    font-size: 12px;
  }

  .marca {
    min-width: 0;
  }

  .marca__logo {
    width: min(190px, 58vw);
    max-height: 60px;
  }

  .hero__texto {
    padding-block: 56px 52px;
  }

  .hero__titulo {
    margin-bottom: 26px;
  }

  .hero__boton {
    width: 100%;
    min-width: 0;
    letter-spacing: 0;
  }

  .hero__acciones {
    display: grid;
    gap: 12px;
  }

  .hero__indicadores {
    grid-template-columns: 1fr;
  }

  .hero__linea {
    display: grid;
    gap: 4px;
    margin-top: 30px;
  }

  .seccion {
    padding-block: 54px;
  }

  .conocenos {
    padding-block: 54px;
  }

  .conocenos__contenedor {
    width: min(100% - 28px, var(--ancho-contenido));
    gap: 26px;
  }

  .conocenos__historia,
  .conocenos__tarjeta,
  .transporte {
    padding: 24px 22px;
  }

  .conocenos__tarjeta {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .conocenos__icono {
    width: 42px;
    height: 42px;
  }

  .conocenos__transportes {
    grid-template-columns: 1fr;
  }

  .transporte {
    min-height: 0;
  }

  .pagina-hero {
    padding-block: 56px 58px;
  }

  .pagina-hero h1 {
    font-size: 32px;
  }

  .pagina-hero p:last-child {
    font-size: 16px;
  }

  .pagina-contenido {
    padding-block: 46px 58px;
  }

  .pagina-principal {
    gap: 22px;
  }

  .pagina-grid,
  .pagina-bloques,
  .pagina-mapas,
  .pagina-lista {
    grid-template-columns: 1fr;
  }

  .pagina-seccion--compacta,
  .pagina-seccion--visual,
  .pagina-tarjeta,
  .pagina-bloque,
  .pagina-lateral {
    padding: 24px 22px;
  }

  .pagina-seccion--visual {
    padding-inline: 0;
  }

  .pagina-galeria-flota {
    grid-template-columns: 1fr;
    grid-auto-rows: auto;
  }

  .pagina-galeria-flota__item,
  .pagina-galeria-flota__item--amplio {
    grid-row: auto;
    aspect-ratio: 16 / 9;
  }

  .pagina-tarjeta {
    min-height: 0;
  }

  .servicios__contenedor {
    width: min(100% - 28px, var(--ancho-contenido));
  }

  .servicios__titulo {
    font-size: 29px;
  }

  .tarjeta-servicio {
    min-height: 0;
  }

  .tarjeta-servicio__contenido {
    padding: 17px 18px 19px;
  }

  .tarjeta-servicio__titulo {
    font-size: 21px;
  }

  .tarjeta-servicio__acordeon {
    margin-top: 14px;
  }

  .tarjeta-servicio__boton {
    width: 100%;
  }

  .beneficios {
    padding-block: 54px 64px;
  }

  .beneficios__contenedor {
    grid-template-columns: 1fr;
    gap: 34px;
  }

  .paradas-autorizadas__mapas {
    grid-template-columns: 1fr;
  }

  .parada-mapa iframe {
    min-height: 320px;
  }

  .beneficio__icono {
    width: 68px;
    height: 68px;
    margin-bottom: 16px;
  }

  .beneficio__texto,
  .beneficio__enlace {
    font-size: 15px;
  }

  .testimoniales {
    padding-block: 44px 54px;
  }

  .testimoniales__contenedor {
    width: min(100% - 28px, 900px);
  }

  .testimoniales__lista {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .testimonio__texto {
    min-height: 0;
  }

  .galeria {
    padding-block: 52px 58px;
  }

  .galeria__contenedor {
    width: min(100% - 28px, var(--ancho-contenido));
  }

  .galeria__item:not(.galeria__item--amplio) img {
    padding: 16px;
  }

  .galeria__item.galeria__item--foto img {
    padding: 0;
  }

  .galeria__boton {
    justify-self: stretch;
    width: 100%;
  }

  .galeria-pagina {
    padding-block: 48px 60px;
  }

  .galeria-pagina__contenedor {
    width: min(100% - 28px, var(--ancho-contenido));
  }

  .carrusel__visor {
    min-height: 390px;
  }

  .carrusel__diapositiva img[src$="sotraIMG.png"] {
    padding: 24px;
  }

  .carrusel__texto {
    padding: 64px 22px 22px;
  }

  .carrusel__texto h3 {
    font-size: 22px;
  }

  .carrusel__texto p {
    font-size: 14px;
  }

  .carrusel__controles {
    grid-template-columns: 44px minmax(0, 1fr) 44px;
    gap: 10px;
  }

  .carrusel__boton {
    width: 44px;
    height: 44px;
  }

  .carrusel__indicador {
    width: 28px;
  }

  .contacto-preguntas__columna--preguntas,
  .contacto-preguntas__columna--formulario {
    padding-block: 48px 54px;
    padding-inline: 18px;
  }

  .contacto-directo__grid,
  .formulario-contacto__fila {
    grid-template-columns: 1fr;
  }

  .contacto-canal {
    min-height: 92px;
    padding: 18px;
  }

  .preguntas-frecuentes__titulo,
  .contacto-directo__titulo,
  .formulario-contacto__titulo {
    font-size: 23px;
  }

  .formulario-contacto__acciones {
    display: grid;
  }

  .formulario-contacto__whatsapp,
  .formulario-contacto__boton {
    width: 100%;
    margin-top: 0;
  }

  .pie-pagina__contenido {
    grid-template-columns: 1fr;
    gap: 30px;
    width: min(100% - 32px, 1320px);
    padding-block: 42px 38px;
  }

  .pie-pagina__frase {
    max-width: none;
  }

  .pie-pagina__boton,
  .pie-pagina__boton-secundario {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}
