/*========== BASE ==========*/
/* 1REM = 10px*/
*,
::before,
::after {
   box-sizing: border-box;
}


body {
   font-family: var(--body-font);
   font-size: var(--normal-font-size);
   line-height: 26px;
}

h1,
h2,
h3,
ul,
p {
   margin: 0;
}


ul {
   padding: 0;
   list-style: none;
}

a {
   text-decoration: none;
}

img {
   max-width: 100%;
   height: auto;
}

/*========== CLASS CSS ==========*/
.section-title,
.section-title-center {
   font-size: var(--h2-font-size);
   color: var(--title-color);
   text-align: center;
   margin-bottom: var(--mb-3);
}


.whatsapp-icon, .icon-phone{
   height: 35px;
   width: 35px;
}

/*NAVBAR*/
._header-old {
   background-color: #000!important;
   padding: 10px 0;
}

@media (max-width: 768px) {
   .menu-desktop {
      display: none;
   }
}

.redireccion {
   border-right: 2px solid rgb(223, 23, 23) ;
   padding: 5px 0;
   display: block;
}

@media (min-width: 768px){
   ._header-old {
      display: none;
   }
   .menu-desktop {
      display: block;
   }
   .redireccion{
      display: flex;
      align-items: end;
      padding: 0px 20px;
   }
}
.menu-desktop {
   background-color: #000;
   border-bottom: 1px solid red;
}

.logo-app {
   display: inline-block;
   width: auto;
   height: auto;
}

.logo-app img{
   height: 35px;
   object-fit: cover;
}

.menu-desktop-contenedor {
   padding: 15px 0;
   display: flex;
   justify-content: space-around;
   align-items: center;
}

.menu-desktop .contactanos a{
   display: flex;
   align-items: center;
   justify-content: center;
}
.menu-desktop .contactanos .texto {
   color: #fff;
}

.menu-desktop .txt-telefono{
   font-weight: 600;
   font-size: 23px;
}

@media (max-width:768px) {
   .menu-desktop .contactanos a{
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
   }
   .mdesk-inicio {
      display: none;
   }

   .menu-desktop .texto p{
      display: none;
   }
   .contactanos .txt-telefono {
      font-size: 17px;
   }
}


.mdesk-submenu {
   box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.5);
   border-radius: 5px;
   background-color: #000;
   color: white;
   position: absolute;
   top: 25px;
   right: -60px;
   display: none;
   flex-direction: column;
   width: 150px;
}
.mdesk-submenu li a{
   color: white;
   padding: 10px;
}
.mdesk-submenu:hover {
   display: flex;
}

/* PANTALLA PRINCIPAL FOTOS*/
.portada-main {
   /*background-image: linear-gradient(
         rgba(7, 7, 7, 0.5), rgba(7, 7, 7, 0.5)
      ), url("../img/update-servicios/destinos/tacna-1.jpg");*/
   background-repeat: no-repeat;
   background-size: cover;
   background-position: center;
}

.portada-texto h1{
   text-align: left;
   font-size: 50px;
   font-weight: 800;
}
.portada-texto span{
   color: red;
}
.portada-texto p {
   margin-top: 20px;
   text-align: left;
   text-transform: capitalize;
}

@media (max-width:768px) {
   .portada-main {
      min-height: 300px;
      padding: 30px 20px;
   }
   .portada-redes {
      display: none;
   }

}
@media (min-width:768px) {
   .portada-main {
      min-height: 420px;
      padding: 150px 80px;
   }

   .portada-texto h1 {
      font-size: 80px;
   }
}

.contenido-portada {
   display: flex;
   justify-content: space-between;
}

.portada-texto {
   color: white;
}
@media (min-width: 1440px) {
   .portada-main {
      padding: 150px 250px;
   }
}

.red{
   height: 30px;
   width: 30px;
   margin-top: 20px;
}

/***/


/*INFORMACION SECTION BUSES*/
.img-buses {
   padding: 10px 20px;
   margin: 50px 0;
}
.buses-grid {
   width: 100%;
   height: 300px;
   display: grid;
   grid-template-columns: repeat(2,1fr);
   grid-template-rows: repeat(4, 1fr);
   gap: 10px;
}
@media (min-width:768px) {
   .indice div {
      display: flex;
      justify-content: left;
   }
   .indice ul {
      margin-right: 40px;
   }
}

@media (min-width:1024px) {
   .img-buses {
      display: flex;
      justify-content: center;
      align-items: center;
   }
   .buses-grid {
      height: 400px;
      width: 800px;
   }
   .buses-grid-contenido {
      padding: 0 20px;
   }

}

.img-bus img{
   width: 100%;
   height: 100%;
   object-fit: cover;
   border-radius: 15px;
}
.img-bus:nth-child(1) {
   grid-column: 1/3;
   grid-row: 1/4;
}
.img-bus:nth-child(2) {
   grid-column: 1/2;
   grid-row: 4/5;
}
.img-bus:nth-child(3) {
   grid-column:2/3;
   grid-row: 3/5;
}

.buses-grid-contenido {
   text-align: left;
}
.buses-grid-contenido h4 {
   color: red;
   font-size: 20px;
   font-weight: 800;
   margin-top: 20px;
   margin-bottom: 10px;
}
.buses-grid-contenido h3{
   font-size: 40px;
   font-weight: 800;
}
.buses-grid-contenido p{
   margin: 20px 0;
}

.indice p {
   text-decoration-line: underline;
   color: #000;
}
.indice p:hover {
   text-decoration-line: underline;
   text-decoration-color: red;
   color: red;
}

/*CARDS INFORMACION SERVICIOS*/
.cards-servicios-title {
   margin: 20px 0;
}
.cards-servicios-title h3{
   text-align: center;
   font-weight: 800;
   font-size: 40px;
}
.cards-servicios-title p{
   text-align: center;
   padding: 10px 0;
}

@media (min-width:768px) {
   .cards-servicios {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
   }
   .card-service {
      width: 300px;
   }
}

@media (min-width:1024px) {
   .card-service-superior {
      position: relative;
      bottom: 30px;
   }
}

.card-service-vip {
   background-image: linear-gradient(
      rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7)
   ), url("../img/update-servicios/PLATINUM/PLATINUM CONFORT 1ER PISO/IMG_5459.JPG");
}

.card-service-superior {
   background-image: linear-gradient(
      rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7)
   ), url("../img/update-servicios/PLATINUM/PLATINUM SUPERIOR 2DO PISO/IMG_5394.JPG");
}

.card-service-confort {
   background-image: linear-gradient(
      rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7)
   ), url("../img/update-servicios/PLATINUM/PLATINUM CONFORT 1ER PISO/IMG_5442.JPG");
}

.card-service {
   margin: 10px 20px;
   border-radius: 10px;
   background-repeat: no-repeat;
   background-size: cover;
   padding: 30px;
   background-position: center;
}

.nombre-servicio {
   text-align: center;
   background-color: red;
   color: #fff;
   padding: 15px 0;
   border-radius: 10px;
}
.nombre-servicio h3 {
   font-weight: 800;
   font-size: 20px;
}
.descripcion-servicio {
   border-top: 1px solid #000;
   text-align: center;
   margin-top: 20px;
   padding-top: 20px;
}
/*
   RUTAS HALLPA
*/
.rutas-hallpa-section {
   margin: 30px 20px;
   padding: 30px 0;
   border-bottom: 1px solid #e1e1e1;
}
.table-container h2{
   text-align: center;
   font-weight: 800;
   font-size: 40px;
   margin-bottom: 20px;
}

@media (min-width: 1024px) {
   .table-container {
      margin: 0 150px;
   }
}


.rutas-hallpa-section table {
   width: 100%;
   border-collapse: collapse;
}

.rutas-hallpa-section thead {
   background-color: rgba(128, 128, 128, 0.212);
}

.rutas-hallpa-section th, .rutas-hallpa-section td {
   border: 1px solid #f9f9f9;
   padding: 20px;
   text-align: center;
}

.rutas-hallpa-section th {
   background-color: #C2230D;
   color: #fff;
   font-weight: bold;
}

.rutas-hallpa-section tr:hover {
   background-color: #f1f1f1;
   cursor: pointer;
}

/*sobre hallpa section */
.sobre-hallpa {
   background-color: #e1e1e1;
}

.contenedor-hallpa {
   margin: 0 30px;
   padding: 40px 0;
}
@media (min-width: 1440px) {
   .contenedor-hallpa {
      padding-left: 200px;
      padding-right: 200px;
   }

}

.sobre-hallpa-texto{
   text-align: left;
}

.sobre-hallpa-texto h3:nth-child(1) {
   color: red;
   font-size: 20px;
   font-weight: 800;
   margin-bottom: 10px;
}

.sobre-hallpa-texto h3:nth-child(2) {
   font-size: 40px;
   font-weight: 800;
   margin-bottom: 10px;
}

.mapa-rutas-hallpa {
   background-image: url("../img/update-servicios/PLATINUM/EXTERIOR/mapa rutas2.jpg");
   background-repeat: no-repeat;
   padding: 230px 0;
   background-position: bottom;
   background-size: cover;
}
@media (min-width:1024px) {
   .sobre-hallpa {
      margin-top: 100px;
      margin-bottom: 40px;
      display: flex;
      justify-content: center;
   }
   .img-ruta-hallpa {
      position: relative;
      bottom: 50px;
   }
   .mapa-rutas-hallpa {
      padding: 270px 200px;
      border-radius: 15px;
   }
}

/*FAQ*/
.faq-hallpa {
   margin: 0 15px;
}
.faq-texto {
   text-align: center;
}
.faq-texto h3:nth-child(1) {
   color: red;
   font-size: 20px;
   font-weight: 600;
   margin: 10px;
}

.faq-texto h3:nth-child(2) {
   font-size: 40px;
   font-weight: 800;
   margin-bottom: 30px;
}
.faq-faq .faq {
   margin: 10px 0;
   border-radius: 10px;
   padding: 5px 0;
   z-index: 10;
   background-color: #e1e1e1;
}

.faq-faq .faq p{
   padding: 0 20px;
}
@media (min-width:1440px){
   .faq-faq{
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      column-gap: 50px;
   }
}
.faq-faq summary {
   padding: 20px 0;
   text-align: center;
}

/*FOOTER*/
.footer_background {
   background-image: linear-gradient(
      rgba(7, 7, 7, 0.8), rgba(7, 7, 7, 0.8)
   ), url("../img/update-servicios/destinos/arequipa-2.jpg");
   background-repeat: no-repeat;
   background-size: cover;
   background-position: center;
   padding: 400px 0;
}

/*BUS FLOTANTE*/
.contenedor-bus-flotante{
   cursor: pointer;
   position: sticky;
   top: 620px;
   z-index: 50;
}
@media(min-width: 768px) {
   .contenedor-bus-flotante {
      position: fixed;
      top: 670px;
      right: 200px;
   }
}

.bus-flotante{
   display: flex;
   justify-content: center;
}

.sticky-bus {
   width: 200px;
   animation: beat 5s infinite;
}
@media(min-width: 768px ) {
   .sticky-bus {
      width: 300px;
   }
}
.sticky-bus img{
   width: 100%;
}

@keyframes beat {
   0% {
       transform: scale(1);
   }
   25% {
       transform: scale(1.2);
   }
   50% {
       transform: scale(1);
   }
   75% {
       transform: scale(1.2);
   }
   100% {
       transform: scale(1);
   }
}

#modalOverlay {
   z-index: 100;
   position: fixed;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   background-color: rgba(0, 0, 0, 0.5);
   display: flex;
   justify-content: center;
   align-items: center;
   opacity: 0;
   visibility: hidden;
   transition: opacity 0.3s, visibility 0.3s;
 }

 #modalOverlay.visible {
   opacity: 1;
   visibility: visible;
 }

 #modal {
   background-color: white;
   width: 500px;
   padding: 20px;
   border-radius: 10px;
   box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
   transform: scale(2.5); /* Comienza grande */
   opacity: 0;
   animation: scaleDown 0.3s forwards;
 }

 .modal-title {
   position: relative;
   max-width: 500px;
   padding: 20px;
}

.btn-close-modal {
   position: absolute;
   top: 10px;
   right: 10px;
   font-size: 20px;
   cursor: pointer;
   display: inline-block;
}
.modal-text {
   margin: 0 20px;
   text-align: center;
}
.modal-text span {
   color: red;
}
 @keyframes scaleDown {
   from {
     transform: scale(1.5); /* Más grande */
     opacity: 0;
   }
   to {
     transform: scale(1); /* Tamaño normal */
     opacity: 1;
   }
 }

 .hidden {
   display: none;
 }
