body {
  font-family: sans-serif;
}

.invisible {
  margin: 0;
  padding: 0;
  visibility: hidden;
}

.selectorIdiomes {
  display: flex;
  gap: 1vh;
  justify-content: flex-end;
}

.selectorIdiomes a {
  color: black;
  text-decoration: none;
}

body {
      background-color: #333;
      margin: 0;
      padding: 0;
      font-family: Arial, sans-serif;
      height: 100%;
      display: flex;
      flex-direction: column;
    }

    /* Estilo del header */
    header, header .opcions {
      display: flex;
      align-items: center;
      align-content: center;
      justify-content: center;
      background-color: #13AF81;
      gap: 4vh;
      padding: 1.5vh;
    }
    @media (max-width: 768px) {
      header, header .opcions {
        gap: 2vh;
        padding: 0;
      }
      header .opcions {
        display: none;
      }
    }
    
    header span {
      flex: 1;
    }
    @media (max-width: 768px) {
      header span {
        display: none;
      }
    }

    header img {
      max-height: 5vh;
      width: auto;
    }
    
    @media (max-width: 768px) {
      header img {
        max-height: 3vh;
      }
    }
    
    header p {
      color: white;
      font-size: 3vh;
      font-weight: bold;
    }
    
    header .opcions a {
      text-decoration: none;
      color: white;
      font-size: 3vh;
      font-weight: bold;   
      width: 18vh;
      text-align: center;
      padding: 0.75vh 2vh;
      background-color: #26C999;
    }
    
    header a:hover {
      background-color: #40E3B3;
    }
    
    header .opcionsMobi {
      display: none;
    }
    @media (max-width: 768px) {
      header .opcionsMobi {
        display: block;
      }
    }

    /* Estil del main */
    main {
      flex: 1;
      padding: 2vh 7vh;
      background-color: #f4f4f4;
    }
    @media (max-width: 768px) {
      main {
        padding: 2vh;
      }
    }

    /* Estil del footer */
    footer {
      display: flex;
      align-items: center;
      justify-content: center;
      height: 3vh;
      background-color: #333;
      color: white;
      text-align: center;
      padding: 3vh;
    }
    
    .bannerImg {
      height: 40vh;
      margin-bottom: 4vh;
      width: 100%;
      object-fit: cover;
    }
    
    .box {
      padding: 0 2vh;
      border: 1px black solid;
      display: flex;
      align-items: center;
      justify-content: space-around;
      align-content: center;
      flex-wrap: nowrap;
      flex-direction: row;
    }
    
    .ruteBox {
      height: 3vh;
      min-width: 3vh;
      margin: 1vh;
      padding: 1vh;
      font-size: 2.5vh;
      font-weight: bold;
      text-align: center;
      color: white;
      background-color: darkgray;
    }
    
    .ruteBoxes {
      display: flex;
    }
    @media (max-width: 768px) {
      .ruteBoxes {
        overflow-x: auto;
        white-space: nowrap;
      }
    }