/* Estilos base (Mobile First) */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body, html {
    text-align: left; 
    font-family: Arial, sans-serif; 
    font-size: 16px; 
    background-color: GhostWhite; 
    height: 100%; 
    color: #132968;
}

p {
    margin: 0 0 20px 0;
    text-align: left;
    font-size: 16px;
    line-height: 1.9;
}

p a {
    color: MediumVioletRed;
}

blockquote {
    background-color: #ffffcc;
    border-left: 3px solid #007C85;
    border-radius: 14px;
    margin-bottom: 28px;
    padding: 10px;
    font-size: 16px;
    line-height: 1.7;
}

blockquote a {
    font-weight: bold;
    color: #007C85;
}

h1 {
    color: #132968; 
    font-size: 24px;  
    font-family: Trebuchet, sans-serif; 
    margin: 0 2% 10px 2%;
    text-align: left; 
    line-height: 150%;
}

h2 {
    color: #007C85; 
    font-size: 22px;  
    font-family: Trebuchet, sans-serif; 
    margin: 1em 15px; 
    text-align: left; 
    line-height: 150%;
}

h3 {
    font-size: 20px;
    line-height: 150%;
    text-align: left;
    padding: 0 15px;
    margin-bottom: 0.7em;
    font-family: "Arial";
}

h4, h5 {
    text-align: left;
}

/* Navigation - Mobile First */
.topnav {
    overflow: hidden;
    background-color: #007C85;
    border-bottom: solid 3px #fff;
}

.topnav > div {
    border-left: 1px solid grey;
}

.topnav a {
    float: left;
    display: block;
    color: #fff;
    text-align: center;
    padding: 12px 14px;
    text-decoration: none;
    font-size: 14px;
    font-family: Tahoma, sans-serif;
    border-left: 1px solid Gray;
}

.topnav a:first-child {
    background: grey;
    color: #fff;
}

.topnav a.icon {
    padding: 11px;
    display: block;
    float: right;
}

.topnav .icon {
    display: none;
}

.topnav.responsive {
    position: relative;
}

.topnav.responsive .icon {
    position: absolute;
    right: 0;
    top: 0;
    padding: 11px;
}

.topnav.responsive a {
    float: none;
    display: block;
    text-align: left;
    border-bottom: solid 1px #3f95dc;
}

.topnav.responsive .dropdown {
    float: none;
}

.topnav.responsive .dropdown-content {
    position: relative;
}

.topnav.responsive .dropdown .dropbtn {
    display: block;
    width: 100%;
    text-align: left;
}

.dropdown {
    float: left;
    overflow: hidden;
}

.dropdown .dropbtn {
    font-size: 14px;    
    border: none;
    outline: none;
    color: #fff;
    padding: 14px 16px;
    background-color: inherit;
    font-family: inherit;
    margin: 0;
    display: none;
}

.dropdown-content {
    display: none;
    position: absolute;
    background-color: #f9f9f9;
    min-width: 160px;
    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
    z-index: 1;
}

.dropdown-content a {
    float: none;
    color: black;
    padding: 12px 16px;
    text-decoration: none;
    display: block;
    text-align: left;
}

.topnav a:hover, .dropdown:hover .dropbtn {
    background-color: Gray;
    color: white;
}

.dropdown-content a:hover {
    background-color: #ff4d4d;
    color: black;
}

.dropdown:hover .dropdown-content {
    display: block;
}

/* Layout Mobile First */
div.container {
    margin: 0;
    max-width: 100%;
    background: #fff;
    padding-bottom: 30px;
    box-shadow: rgba(0, 0, 0, 0.37) 0px 2px 5px 0px;
}

div.panel {
    padding: 0;
    padding-top: 10px;
}

div.panel-heading { 
    padding: 8px;
    background: #fffafa;
    border-left: solid 10px #ddd;
}

div.panel-heading > h1 {
    font-size: 18px;
    margin: 0;
    padding: 0;
    color: #333;
    font-weight: bold;
    text-transform: uppercase;
}

div.row {
    display: block;
}

div.footer {
    width: 100%;
    margin-top: 20px;
    padding-top: 20px;     
}

.footer > .row > p {
    text-align: center; 
    color: #444; 
    font-size: 12px; 
    padding: 0; 
    margin: 0; 
    border-bottom: solid 1px #007C85; 
    padding-bottom: 10px; 
    padding-top: 10px;
}

.footer > .row > h4 {
    text-align: center; 
    color: #555; 
    margin: 0;
}

/* Lists */
ul {
    margin-left: 5px;
}

ul li {
    text-align: left;
    padding-bottom: 7px;
    padding-top: 7px;
    line-height: 150%;
    margin-left: 0;
    font-size: 16px;
}

ul li a {
    text-decoration: none;
    border-bottom: 0.10em solid MediumVioletRed;
    color: MediumVioletRed;	 
}

ul.list-group-horizontal {
    margin-bottom: 25px;
    padding: 0;
    margin-left: 5px;
    margin-top: 5px;
}

ul.list-group-horizontal > li.list-group-item {
    display: inline-block;
    border: 1px solid #ddd;
    padding: 5px;
    margin-bottom: 20px;
    background: #f6f6f6;
    margin-bottom: 7px;
}

ul.list-group {
    margin: 5px;
    padding: 0;
    background: #fff;
    border-radius: 5px;
    list-style: none;
    width: auto;
    max-width: 85%;
}

ul.list-group > li.list-group-item {
    padding: 15px;
    text-align: left;
    padding-left: 25px;
    border-bottom: 1px solid #eee;
    background: url(/static-files/arrow.svg) no-repeat left;
}

ul.list-group > li.list-group-item:first-line {
    font-size: 1.2em;   
}

ul.list-group > li.list-group-item:hover {
    background: #007C85;
    color: #fff;
    border-radius: 8px;
}

ul.list-group > li.list-group-item > a:link, 
ul.list-group > li.list-group-item > a:visited {
    color: #000; 
    text-decoration: none; 
    font-size: 17px;
}

ul.list-group > li.list-group-item:hover > a {
    color: #fff;
}

/* Utility classes */
.cookie-policy {
    text-align: center;
    max-width: 600px;
}

.third-party, .third-party > a {
    color: #ccc;
    font-size: x-small;
}

.text-justify {
    text-align: justify;
}

.col-sm-1 {
    display: inline-block;
    margin-bottom: 3px;
}

.col-inline {
    float: left;
    margin-right: 4px;
    margin-bottom: 4px;
}

.horarios {
    font-size: 16px;
    margin-top: 18px;
    background-color: #fff;
    border-radius: 10px;
    padding: 5px;
}

.horarios:after {
    content: '';
    display: block;
    clear: both;
}

.readmore-btn {
    color: green;
    text-decoration: none;
    font-weight: bold;
    font-size: 20px;
}

.col-mixed {
    float: left;
    max-width: 500px;
    text-align: left;
    padding: 5px;
}

.col-mixed > h4 {
    margin: 0; 
    padding: 0; 
    margin-bottom: 5px; 
    margin-top: 5px;
    font-size: 26px;
}

.img-wrapped {
    border-radius: 10%;
}

.row::after {
    content: '';
    display: block;
    clear: both;
}

.location {
    background: url('/static-files/marker.svg') no-repeat left; 
    padding-left: 25px; 
    width: 100%;
}

/* Ad slots */
.adslot_bus { 
    width: 300px; 
    height: 250px;
}

/* Media Queries para pantallas más grandes */

/* Tablets (366px en adelante) */
@media screen and (min-width: 366px) {
    .topnav a:not(:first-child), .dropdown .dropbtn {
        display: block;
    }
    
    .topnav a.icon {
        display: none;
    }
    
    div.panel {
        padding: 15px 45px 45px 45px;
    }
    
    div.panel-heading > h1 {
        font-size: 26px;
        color: #407196;
        font-weight: 200;
        text-transform: none;
    }
    
    .user-rating {
        font-size: 40px;
    }
    
    input[type=radio] {
        transform: scale(2.5);
    }
    
    .topnav a:first-child {
        background: DodgerBlue;
    }
    
    .dropdown .dropbtn {
        display: block;
    }
}

/* Pantallas medianas (500px en adelante) */
@media screen and (min-width: 500px) {
    .adslot_bus { 
        width: 336px; 
        height: 280px; 
    }
    
    h1 {
        font-size: 26px;
        margin: 0 0 25px 0;
    }
    
    h2 {
        font-size: 24px;
    }
    
    h3 {
        font-size: 21px;
        padding: 0;
    }
    
    .topnav > a {
        border-bottom: none;
    }
    
    .topnav > div {
        border-bottom: none;
    }
}

/* Pantallas grandes (800px en adelante) */
@media screen and (min-width: 800px) {
    div.container {
        margin: 0 auto;
        max-width: 1000px;
        border-bottom-left-radius: 0%;
        border-bottom-right-radius: 0%;
    }
    
    .terminales {
        font-size: 17px;
    }
    
    .buses {
        font-size: 16px;
    }
    
    ul.list-group-fancy {
        max-width: 800px;
    }
}

/* Pantallas muy grandes (más de 1000px) */
@media screen and (min-width: 1000px) {
    /* Aquí puedes añadir estilos específicos para pantallas muy grandes si es necesario */
}

/* Estilos específicos para páginas de corridas */
.bloque-corridas {
    background-color: white; 
    border-radius: 10px; 
    padding: 10px; 
    margin-top: 10px; 
    box-shadow: rgba(0, 0, 0, 0.37) 0px 2px 5px 0px; 
    margin-bottom: 20px; 
    max-width: 99%;
}

.bloque-corridas > h3 {
    margin-top: 10px; 
    padding: 0; 
    margin-bottom: 7px; 
    color: #007c85; 
    font-size: 21px;
}

.bloque-corridas > p {
    margin: 0 0 8px 0;
}

.bloque-corridas > p > a {
    color: MediumVioletRed; 
    text-decoration: none;
    background: url(/static-files/arrow.svg) no-repeat left;
    padding-left: 18px;
}

.price {
    color: MediumVioletRed; 
    font-weight: bold;
}

.boxify {
    font-size: 17px;
    border: solid 1px grey;
    border-radius: 5px;
    padding: 8px;
    font-weight: 500;
    margin: 4px;
    color: #132968;
}

.wrapped {
    background: #eee; 
    padding: 20px; 
    border-radius: 20px;
}

.linea-nombre a {
    color: #007c85; 
    text-decoration: underline solid grey;
}

/* Autocomplete */
.autocomplete-box {
    border: solid 1px #ddd;
    border-radius: 5px;
    padding: 1px;
    background: #fff;
    max-width: 320px;
    margin: 5px;
}

.autocomplete-header {
    background: #2b2b2b;
    border-top-left-radius: .25em;
    border-top-right-radius: .25em;
    margin-top: 0;
    margin-bottom: 0;
    color: #fff;
    font-weight: normal;
    font-size: 17px;
    font-family: Arial, sans-serif;
    padding: 5px;
    text-align: center;
}

.autocomplete {
    position: relative;
    display: inline-block;
}

input {
    border: 1px solid transparent;
    background-color: #fff;
    padding: 10px;
    font-size: 15px;
}

input[type=text] {
    background-color: #fff;
    width: 100%;
}

input[type=submit] {
    background-color: #007C85;
    color: #fff;
    cursor: pointer;
    border-radius: 5px;
    padding: 7px;
}

.autocomplete-items {
    position: absolute;
    border: 1px solid #d4d4d4;
    border-bottom: none;
    border-top: none;
    z-index: 99;
    top: 100%;
    left: 0;
    right: 0;
    font-size: 16px;
}

.autocomplete-items div {
    padding: 10px;
    cursor: pointer;
    background-color: #fff; 
    border-bottom: 1px solid #d4d4d4; 
}

.autocomplete-items div:hover {
    background-color: #e9e9e9; 
}

.autocomplete-active {
    background-color: DodgerBlue !important; 
    color: #ffffff; 
}

/* Rating plugin */
.user-rating {
    direction: rtl;
    unicode-bidi: bidi-override;
    padding: 10px 30px;
    display: inline-block;
}

.user-rating input {
    opacity: 0;
    position: relative;
    left: -15px;
    z-index: 2;
    cursor: pointer;
}

.user-rating span.star:before {
    color: #777777;
    content: "\2729";
}

.user-rating span.star {
    display: inline-block;
    font-family: FontAwesome;
    font-style: normal;
    font-weight: normal;
    position: relative;
    z-index: 1;
}

.user-rating span {
    margin-left: -15px;
}

.user-rating input:hover + span.star:before,
.user-rating input:hover + span.star ~ span.star:before, 
.user-rating input:checked + span.star:before,
.user-rating input:checked + span.star ~ span.star:before {
    color: #C23141;
    content: "\2605";
}

.selected-rating {
    color: #C23141;
    font-weight: bold;
    margin-top: -25px;
    font-size: 20px;
}

.rank {
    margin: 0; 
    padding: 3px;
    margin-top: -10px;   
}

/* Tables */
table {
    border-collapse: collapse;
    font-size: 16px;
    letter-spacing: 0.5px;
}

th {
    background-color: #007C85;
    color: white;
    padding-bottom: 9px;
    font-size: 1.1em;
}

td, th {
    padding-left: 6px;
    padding-top: 8px;
}