﻿/*@import url('https://fonts.googleapis.com/css?family=Montserrat:100,100i,200,200i,300,300i,400,400i,500,500i,600,600i,700,700i,800,800i,900,900i');*/

.main-content-landing {
    margin-top: 8vh;
    /*    padding: 15px;*/
    flex: 1;
    transition: margin-left 0.3s ease-in-out;
}

.main-content-public {
    margin-top: 8vh;
    padding: 15px;
    flex: 1;
    transition: margin-left 0.3s ease-in-out;
}

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

.img-fluid-custom {
    height: 70px;
    width: 70px;
    object-fit: contain;
}

.company-logo {
    height: 40px;
    width: 150px;
    /*    border-radius: 100%;*/
}

.fs-xsm {
    font-size: 12px;
}

.fs-xxsm {
    font-size: 10px;
}


.company-logo-print {
    height: 50px;
    width: 50px;
    border-radius: 100%;
}

@media (min-width: 601px) {
    .resp-view-m, .filter-panel {
        display: none;
    }

    .resp-view-d {
        display: block;
    }
}


@media (max-width: 600px) {
    .resp-view-m, .filter-button {
        display: block;
    }

    .resp-view-d, .filter-panel {
        display: none;
    }
}

@media print {
    .no-print {
        display: none !important;
    }
}


@media (max-width: 768px) {
    .border-top-sm {
        border-top: 1px solid #dee2e6; /* Bootstrap default border color */
        padding-top: 0.5rem;
        margin-top: 0.5rem;
    }
}

/*@media print {
    #bookingReportTableBody table,
    #bookingReportTableBody tbody,
    #bookingReportTableBody tr {
        line-height: 38px;
    }
}

#bookingReportTableBody table, tbody, tr {
    height: 38px;
}
*/

.fare-price {
    font-size: 18px;
}



.search-list {
    /*    transition: all 0.25s ease-in-out !important;*/
    border: 1px solid #ffccbc;
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

    .search-list.bus-selected {
        box-shadow: 0 8px 20px rgba(0,0,0,0.15);
        transform: translateY(-1px) scale(1);
        border: 1px solid #ff8462 !important;
    }

    .search-list:hover {
        transform: translateY(-1px) scale(1.008);
        box-shadow: 0 8px 20px rgba(0,0,0,0.1);
        border: 1px solid #ff8462 !important;
    }

    .search-list.bus-selected {
        transform: scale(1.008);
        cursor: pointer;
    }

.rounded-end-book-now {
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
}

.seat-emoji {
    background-color: #fff;
    border-radius: 50%;
    margin-right: 10px;
    /* Size */
    height: 20px;
    width: 20px;
    /* Center emoji */
    display: flex;
    align-items: center;
    justify-content: center;
    /* Soft shadow */
}

.seat-emoji {
    box-shadow: 0 0px 6px #fff;
}




#v-pills-tab .nav-link {
    /*background-color: #f8f9fa;*/ /* Light background */
    border-radius: 0rem; /* Rounded corners */
    text-align: start; /* Left-align text */
    width: auto; /* Default width */
    padding-left: 0.5rem; /* Left padding for alignment */
    /* Spacing between buttons */
    transition: background-color 0.3s ease;
    color: white;
    font-size: 12px;
    line-height: 30px;
}

    #v-pills-tab .nav-link.active {
        background-color: white; /* Bootstrap primary blue */
        color: #000 !important; /* White text */
        width: 100%; /* Full width */
        /*font-weight: 500;*/ /* Bold text */
    }

a, select, button, a > label {
    cursor: pointer;
}

.fs-sm {
    font-size: 12px !important;
}


.fs-xsm {
    font-size: 10px !important;
}

.seat-indicator-img {
    border-radius: 50% !important;
    border: 1px solid #05D400;
    height: 20px;
    width: 20px;
}

.seat-cell {
    position: relative;
    text-align: center;
    vertical-align: middle;
    padding: 2px;
    padding-left: 4px;
    padding-right: 4px;
    /*    width: 42px;
    height: 42px;*/
    /*    border: 1px solid #ccc;*/
}

.seat-cell-mini {
    position: relative;
    text-align: center;
    vertical-align: middle;
    padding: 1px;
    /*    width: 42px;*/
    /*    border: 1px solid #ccc;*/
}

.seat-cabin {
    transform: rotate(90deg);
}

/*Default Seat*/
.seat-img {
    /*    display: block;*/
    margin: 0 auto;
    /*    padding: 0.5px;*/
    /*    border-radius: 22%;*/
    width: 42px;
    height: 44px;
    cursor: pointer;
}

.seat-img-mini {
    /*    display: block;*/
    margin: 0;
    margin-top: 0;
    margin-bottom: 0;
    padding: 0;
    /*    padding: 0.5px;*/
    /*    border-radius: 22%;*/
    width: 20px;
    height: 20px;
    cursor: pointer;
}

.sleeper-img {
    /*    padding: 7px;*/
    /*    display: block;
    margin: 5px;
    border-radius: 22%;
    width: 38px;*/
    height: 92px;
    /*cursor: pointer;*/
}

.sleeper-img-mini {
    /*    padding: 7px;*/
    /*    display: block;
    margin: 5px;
    border-radius: 22%;
    width: 38px;*/
    height: 40px;
    /*cursor: pointer;*/
}

.seat-img-locked {
    display: block;
    margin: 0 auto;
    padding: 0.5px;
    border-radius: 22%;
    width: 38px;
    height: 40px;
    cursor: default;
}

.border-locked {
    border: 4px solid #ff9191 !important;
    border-radius: 12%;
    padding: 5px;
}

.border-unlocked {
    border: 4px solid #4ce94c !important;
    border-radius: 12%;
    padding: 5px;
}

.border-selected {
    border: 4px solid #328dfc !important;
    border-radius: 12%;
    padding: 5px;
}

.seat-selected-bg {
    /*    box-shadow: inset 0 0 30px #00f11b;*/
    /*    background-image: linear-gradient( white 50%, #00f11b);*/
    /*    background-color: #ff911a;*/
    color: #000;
    border-radius: 12%;
}

.seat-reserved-bg {
    background-color: #ffa7bf;
    /*    background-image: radial-gradient(circle, white 20%, #ff2d67 100%);*/
    border-radius: 15%;
}

.seat-reserved-bg-agent {
    background-color: #a4cdff;
    /*    background-image: radial-gradient(circle, white 20%, #a779ff 100%);*/
    border-radius: 15%;
}

.bg-success-light {
    /*    background-color: #5cd857;*/
    box-shadow: inset 0 0 10px #00f11b;
    /*    background-image: radial-gradient(white, green, green);*/
}


.bg-pink-light {
    box-shadow: inset 0 0 20px #ffb400;
}


.seat-img-wheel {
    width: 35px;
    height: 35px;
    float: right;
    margin-right: 20px;
    /*    background: #ccc;*/
}

.seat-img-wheel-mini {
    width: 18px;
    height: 18px;
    float: right;
    margin-right: 5px;
    /*    background: #ccc;*/
}

.seat-label {
    position: absolute;
    top: 40%;
    left: 50%;
    right: -10%;
    transform: translate(-50%, -50%);
    pointer-events: none;
    font-weight: 600;
    font-size: 10px;
    color: #6d6d6d !important;
}

.seat-label-minix {
    position: absolute;
    top: 40%;
    left: 50%;
    transform: translate(-50%, -50%);
    pointer-events: none;
    font-size: 6px;
    color: #6d6d6d !important;
}





.seat-cabin-label {
    position: absolute;
    top: 50%;
    left: 55%;
    transform: translate(-50%, -50%);
    font-weight: 600;
    font-size: 10px;
    color: #6d6d6d !important;
    pointer-events: none;
}

fieldsetx {
    color: #43d2f7
}

.hidden {
    display: none;
}

.bus-seat {
    overflow: hidden; /* Optional: ensures radius is visually applied */
    border-collapse: separate; /* Helps with rounded corners */
    border-spacing: 0; /* Optional: avoids gaps */
    /*    border: 1px solid #ccc;*/
    margin-bottom: 0px;
}

.selected-seat {
    background-color: #007bff !important; /* Bootstrap primary blue */
    border-radius: 2px;
}



.autocomplete-suggestions {
    display: none;
    position: absolute;
    top: 60px;
    background-color: white;
    border: 1px solid #ccc;
    z-index: 1000;
    max-width: 100%;
    min-width: 100%;
    max-height: 300px;
    overflow-y: auto;
    box-shadow: 0 14px 18px rgb(0, 0, 0, 0.45);
    border-radius: 5px !important;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

    .autocomplete-suggestions div {
        padding: 12px;
        cursor: pointer;
    }

        .autocomplete-suggestions div:hover {
            color: #424242;
            font-weight: 400;
            background-color: #afffb8;
        }

.suggestion-item {
    border-bottom: 1px solid #ccc; /* Light gray color */
    padding: 8px 0; /* Optional padding for spacing */
    cursor: pointer; /* Change cursor to pointer on hover */
}

/*::-webkit-scrollbar {
    width: 20px;
}*/

/* Track */
/*::-webkit-scrollbar-track {*/
/*    box-shadow: inset 0 0 5px #dc3545;*/
/*background-color: #ccc;
    border-radius: 0px;
}*/

/* Handle */
/*::-webkit-scrollbar-thumb {
    background: #8b8b8b;
    border-radius: 5px;
}*/

.route-image {
    height: 100px;
    width: 100px;
    border-radius: 50%;
}

.is-invalid {
    border-color: red !important;
}

.is-valid {
    border-color: green !important;
}

select option[value="0"] {
    color: #5e5e5e;
    font-weight: bold !important;
}

select option {
    color: #2e2e2e;
    cursor: pointer;
}

select.placeholder-selected {
    color: orange !important;
}
/* Red color when placeholder (value 0) is selected */
/*select.invalid-option {
        color: red;
    }*/
.lock-icon {
    position: absolute;
    top: 0;
    right: 5px;
    font-size: 14px;
    color: red;
    z-index: 1;
}

.border-success-light {
    border: 1px solid #00c35e;
}

@media (min-width: 360px) and (max-width: 576px) {
    .col-xsm-6 {
        flex: 0 0 50%;
        max-width: 50%;
    }

    .col-xsm-12 {
        flex: 0 0 100%;
        max-width: 100%;
        justify-content: flex-end;
    }
}

.border-bottom-danger {
    border-bottom: 2px solid red !important;
    border-bottom-left-radius: 2px;
    border-bottom-right-radius: 2px;
}

.border-bottom-dotted {
    border-bottom: 1px dotted #ccc; /* or any color */
}

.border-bottom-dashed {
    border-bottom: 1px dashed #ccc; /* or any color */
}

.border-dashed {
    border: 1px dashed #ccc; /* or any color */
}

.box-transition {
    position: relative;
    top: -5px;
    opacity: 0;
    transition: top 0.3s ease, opacity 0.3s ease;
}

    .box-transition.show {
        top: 5px;
        opacity: 1;
    }

.slide-in {
    opacity: 0;
    transform: translateY(80px);
    animation: slideFromLeft 0.4s forwards;
    animation-delay: 0.3s;
}

    .slide-in:nth-child(2) {
        animation-delay: 0.3s;
    }

    .slide-in:nth-child(3) {
        animation-delay: 0.6s;
    }

    .slide-in:nth-child(4) {
        animation-delay: 0.9s;
    }

    .slide-in:nth-child(5) {
        animation-delay: 1.2s;
    }

@keyframes slideFromLeft {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}


/*login*/

.image-container {
    position: relative;
}

.login-image {
    border-radius: 10px 0 0 10px;
    height: 100%;
    width: 100%;
    object-fit: contain;
}

.highlight-text {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: linear-gradient(15deg,#e1ebf5 0%, #ffffff 49%);
    color: #2d1a5b;
    padding: 5px;
    border-bottom-left-radius: 5px;
    text-align: center;
    /*    border-radius: 0 0 10px 0;*/
}



/* Animations */
.bubble-container {
    position: absolute;
    width: 100%;
    height: 100%;
    overflow: hidden;
    z-index: -10;
    top: 0;
    left: 0;
    pointer-events: none;
}

.bubble-1 {
    position: absolute;
    bottom: -100px;
    background: #4f009d;
    border-radius: 50%;
    animation: rise 15s linear infinite;
    opacity: 0.5;
    backdrop-filter: blur(4px);
}

@keyframes rise {
    0% {
        transform: translateY(0) scale(1);
        opacity: 0.6;
    }

    50% {
        transform: translateY(-50vh) scale(1.2);
        opacity: 0.3;
    }

    100% {
        transform: translateY(-100vh) scale(0.8);
        opacity: 0;
    }
}


/* Position and size randomization (CSS-only option) */
.bubble-1:nth-child(1) {
    left: 10%;
    width: 30px;
    height: 30px;
    animation-delay: 0s;
    animation-duration: 12s;
}

.bubble-1:nth-child(2) {
    left: 20%;
    width: 18px;
    height: 18px;
    animation-delay: 2s;
    animation-duration: 16s;
}

.bubble-1:nth-child(3) {
    left: 35%;
    width: 24px;
    height: 24px;
    animation-delay: 4s;
    animation-duration: 14s;
}

.bubble-1:nth-child(4) {
    left: 50%;
    width: 36px;
    height: 36px;
    animation-delay: 1s;
    animation-duration: 18s;
}

.bubble-1:nth-child(5) {
    left: 65%;
    width: 22px;
    height: 22px;
    animation-delay: 3s;
    animation-duration: 15s;
}

.bubble-1:nth-child(6) {
    left: 75%;
    width: 28px;
    height: 28px;
    animation-delay: 5s;
    animation-duration: 17s;
}

.bubble-1:nth-child(7) {
    left: 85%;
    width: 20px;
    height: 20px;
    animation-delay: 6s;
    animation-duration: 19s;
}

.bubble-1:nth-child(8) {
    left: 90%;
    width: 16px;
    height: 16px;
    animation-delay: 7s;
    animation-duration: 20s;
}

@media (max-width: 768px) {
    .bubble-1 {
        transform: scale(0.6);
    }
}



.form-control-lg-custom {
    height: calc(5.5rem + 2px); /* larger height */
    font-size: 1.1rem;
    padding-top: 1.3rem;
    padding-bottom: 0.5rem;
}

.form-floating > label {
    padding: 1rem 0.75rem;
}

.clickable-card {
    cursor: pointer;
    transition: background-color 0.3s ease;
}

    .clickable-card:hover {
        background-color: #dbe7fb; /* Light gray on hover */
    }


    .clickable-card.selected {
        background-color: #d6f3fc; /* Light gray on hover */
        box-shadow: 0 0 0 3px rgb(66, 196, 225, 0.50);
    }



table.rounded-corners {
    border-radius: 10px !important;
}

    /* Apply a border to the right of all but the last column */
    /*    table.rounded-corners th:not(:last-child),
    table.rounded-corners td:not(:last-child) {
        border-right: 1px solid #ffb400;
    }*/

    /* Apply a border to the bottom of all but the last row */
    table.rounded-corners > thead > tr:not(:last-child) > th,
    table.rounded-corners > thead > tr:not(:last-child) > td,
    table.rounded-corners > tbody > tr:not(:last-child) > th,
    table.rounded-corners > tbody > tr:not(:last-child) > td,
    table.rounded-corners > tfoot > tr:not(:last-child) > th,
    table.rounded-corners > tfoot > tr:not(:last-child) > td,
    table.rounded-corners > tr:not(:last-child) > td,
    table.rounded-corners > tr:not(:last-child) > th,
    table.rounded-corners > thead:not(:last-child),
    table.rounded-corners > tbody:not(:last-child),
    table.rounded-corners > tfoot:not(:last-child) {
        border-bottom: 1px solid #ff1717;
    }


@media (max-width: 768px) {
    .border-bottom-md {
        border-bottom: 1px solid #dee2e6; /* Bootstrap default border color */
        padding-bottom: 0.5rem;
        margin-bottom: 0.5rem;
    }
}


.counter-box {
    padding: 20px;
    border-radius: 10px;
}

.counter {
    color: #007bff;
    font-size: 2.5rem;
}


h4.text-primary {
    margin-bottom: 0.5rem;
}

ul.list-unstyled li {
    padding-left: 1.5rem;
    position: relative;
    margin-bottom: 0.5rem;
}

    ul.list-unstyled li::before {
        content: '✔️';
        position: absolute;
        left: 0;
        color: green;
    }


.hover-shadow:hover {
    box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.15);
    transition: 0.3s;
}

.bg-pink {
    background-color: #ffe9f3
}

.cursor-pointer {
    cursor: pointer;
}

.hover-bg:hover {
    background: linear-gradient(135deg, #d8ffee, #edffd1);
    transition: background 0.3s ease;
    cursor: pointer;
}


.clearable-input {
    position: relative;
}

    .clearable-input .form-control {
        padding-right: 2rem; /* space for X button */
    }

    .clearable-input .clear-btn {
        position: absolute;
        right: 0.5rem;
        top: 50%;
        transform: translateY(-50%);
        border: none;
        background: transparent;
        color: #a10707; /* Bootstrap text-muted */
        font-size: 1.6rem;
        line-height: 1;
        cursor: pointer;
        display: none; /* hidden by default */
    }

        .clearable-input .clear-btn:hover {
            color: #fe0000; /* darker on hover */
        }


.flip-card {
    perspective: 1000px;
}

.flip-card-inner {
    position: relative;
    width: 100%;
    height: 200px;
    transition: transform 0.6s;
    transform-style: preserve-3d;
}

.flip-card:hover .flip-card-inner {
    transform: rotateY(180deg);
}

.flip-card-front, .flip-card-back {
    position: absolute;
    width: 100%;
    height: 100%;
    backface-visibility: hidden;
}

.flip-card-back {
    transform: rotateY(180deg);
    background: #f8f9fa;
}

.hover-card {
    transition: transform 0.2s ease-in-out;
}

    .hover-card:hover {
        transform: scale(1.03);
    }

.bg-gradient {
    background: linear-gradient(135deg, #007bff, #6610f2);
}


.card-hover {
    transition: all 0.2s ease-in-out;
    cursor: pointer;
}

    .card-hover:hover {
        /*        color: #fff;*/
        background-color: #dedede; /* light gray hover */
        transform: translateY(-2px); /* small lift */
        box-shadow: 0 4px 10px rgba(0,0,0,0.15); /* stronger shadow */
    }

#cancelAllSeats:hover {
    background-color: #dc3545; /* Bootstrap danger red */
    color: white;
    transform: scale(1.05);
    transition: all 0.2s ease-in-out;
}

#passenger-table,
#passenger-table tr,
#passenger-table th,
#passenger-table td {
    border: 1px solid #e0e0e0 !important;
    border-collapse: collapse !important;
}

#passenger-table {
    border-collapse: collapse !important;
    width: 100%;
}

    #passenger-table th,
    #passenger-table td {
        border: 1px solid #e0e0e0 !important;
        padding: 2px;
    }

.remove-line-height {
    line-height: 1;
}

.booking-button-content {
    position: fixed;
    bottom: 0;
    z-index: 10;
    left: 300px;
    right: 0;
    flex: 1;
    transition: left 0.5s ease-in-out;
}

.booking-button-confirm-public {
    position: fixed;
    bottom: 0;
    z-index: 10;
    left: 0;
    right: 0;
    flex: 1;
    transition: left 1.8s ease-in-out;
}


@media (max-width: 1399.98px) {
    .booking-button-content {
        transition: right 0.5s ease-in-out;
        left: 0px;
    }
}

@keyframes slideUp {
    from {
        bottom: -100px;
    }

    to {
        bottom: 0;
    }
}

/* Slide Down Animation */
@keyframes slideDown {
    from {
        bottom: 0;
    }

    to {
        bottom: -100px;
    }
}

.slide-up {
    animation: slideUp 0.3s forwards;
}

.slide-down {
    animation: slideDown 0.3s forwards;
}


.cursor-pointer {
    cursor: pointer;
}

.border-bottom-5 {
    border-bottom-width: 5px !important;
}

.icon-bold {
    -webkit-text-stroke: 1px currentColor; /* Makes icon appear thicker */
}


.dataTables_filter {
    padding: 5px;
}

.card, .card-header.rounded-top-3 {
    border-top-left-radius: var(--bs-border-radius-lg);
    border-top-right-radius: var(--bs-border-radius-lg);
}


@keyframes bounce {
    0% {
        transform: scale(1);
    }



    50% {
        transform: scale(0.9);
    }



    100% {
        transform: scale(1);
    }
}

.bounce {
    animation: bounce 0.4s;
}

.bus-ltx {
    opacity: 0;
    max-height: 0;
    overflow: hidden;
    transition: opacity 1.5s ease, max-height 1s ease;
}

    .bus-ltx.show {
        opacity: 1;
        max-height: 2000px; /* large enough to fit content */
    }

.seat-info {
    line-height: 1.2;
}


input::placeholder {
    text-transform: none;
    color: #6c757d; /* optional: keep Bootstrap's default gray placeholder color */
}


@media (max-width: 1200px) { /* md and below */
    .responsive-scroll-md {
        overflow-x: scroll;
        -webkit-overflow-scrolling: touch;
    }

        .responsive-scroll-md table {
            min-width: 1200px; /* optional: ensure table scrolls instead of shrinking */
        }
}


/* Force dropdown to break out of DataTable container */
/*.dataTables_wrapper .dropdown-menu {
    position: fixed !important;
    z-index: 1060 !important;
}

.dataTables_scrollBody {
    overflow: visible !important;
    position: relative !important;
}

.dataTables_wrapper .dropdown {
    position: static !important;
}

.dataTables_scrollBody::-webkit-scrollbar {
    width: 8px;
}

.dataTables_scrollBody::-webkit-scrollbar-track {
    background: #f1f1f1;
}

.dataTables_scrollBody::-webkit-scrollbar-thumb {
    background: #c1c1c1;
    border-radius: 4px;
}

    .dataTables_scrollBody::-webkit-scrollbar-thumb:hover {
        background: #a8a8a8;
    }
*/

/* Highlight selected row in yellow */
#busRoutesTable tbody tr.row-selected {
    background-color: #b2ff50 !important; /* soft yellow */
    transition: background-color 0.2s ease-in-out;
}

/* Optional: hover effect */
#busRoutesTable tbody tr:hover {
    cursor: pointer;
    background-color: #fef057 !important;
}



/* Nested row visual clarity */
tr.shown {
    background-color: #fff8e1 !important;
}

.dataTables_wrapper .toggle-details {
    width: 28px;
    height: 28px;
    padding: 0;
    line-height: 1;
    font-weight: bold;
}

.border-end-lg-only {
    border-right: none;
}

@media (min-width: 782px) { /* LG breakpoint */
    .border-end-lg-only {
        border-right: 1px solid #dee2e6 !important; /* bootstrap border color */
    }
}

.ticket-container {
    position: relative;
    z-index: 1;
    overflow: hidden;
}

#booking-status-banner {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(-30deg); /* Angle looks better at -30deg */
    font-size: 150px; /* Bigger watermark */
    font-weight: 900;
    color: rgb(0, 0, 0, 0.07); /* Very soft grey */
    letter-spacing: 5px;
    white-space: nowrap;
    text-transform: uppercase;
    pointer-events: none;
    z-index: 0; /* Behind everything */
    user-select: none;
}

@media (max-width: 576px) {
    #booking-status-banner {
        font-size: 100px !important;
    }
}


.bg-none {
    background: none !important;
}

.filter-group {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.filter-option {
    border: 1px solid #ccc;
    padding: 8px 14px;
    border-radius: 6px;
    cursor: pointer;
    font-size: 14px;
}

    .filter-option.selected {
        border: 2px solid #E76A3E; /* orange border like RedBus */
        color: #E76A3E;
        font-weight: 600;
        background: #fff7f3; /* light orange tint */
    }

.filter-pill {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 7px 12px;
    margin-bottom: 6px;
    background: #fff;
    border: 1px solid #ccc;
    border-radius: 8px;
    font-size: 13px;
    cursor: pointer;
}

    .filter-pill.selected {
        border: 2px solid #E76A3E;
        background: #fff6f0;
        color: #E76A3E;
        font-weight: 600;
    }

@media (max-width: 768px) {
    .border-end-sm {
        border-right: 1px solid #dee2e6 !important;
    }
}

.banner-img {
    width: 250px;
    height: 150px;
}


/* container */
.chevron-group {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-left: 6px;
    /* keep icons from wrapping */
    white-space: nowrap;
}

/* base icon styling */
.chevron {
    font-size: 1.05rem; /* adjust size */
    line-height: 1;
    color: #fff; /* icon color */
    display: inline-block;
    transform-origin: center;
    /* visual "bold" using shadows (works for SVG icons too) */
    text-shadow: 0 0 0.6px currentColor, 0.6px 0 0 currentColor, -0.6px 0 0 currentColor;
    /* subtle drop shadow for more weight */
    filter: drop-shadow(0 0 0.6px rgba(0,0,0,0.15));
    opacity: 0.0; /* start hidden — will animate in */
    /* animation applied (staggered by nth-child) */
    animation: chevronPulseMove 1.05s cubic-bezier(.2,.9,.3,1) infinite;
}

/* staggered delays so they pulse one after another */
.chevron-group .chevron:nth-child(1) {
    animation-delay: 0s;
}

.chevron-group .chevron:nth-child(2) {
    animation-delay: 0.12s;
}

.chevron-group .chevron:nth-child(3) {
    animation-delay: 0.24s;
}

/* keyframes: fade in, scale up (pulse), and translate right */
@keyframes chevronPulseMove {
    0% {
        opacity: 0;
        transform: translateX(0) scale(0.92);
    }

    25% {
        opacity: 1;
        transform: translateX(6px) scale(1.12);
    }

    60% {
        opacity: 0.9;
        transform: translateX(12px) scale(1.02);
    }

    100% {
        opacity: 0;
        transform: translateX(18px) scale(0.96);
    }
}

/* make icons slightly larger/bolder on hover (optional) */
.btn:hover .chevron {
    filter: drop-shadow(0 0 1px rgba(0,0,0,0.20));
}

/* reduce motion respect - if user prefers reduced motion, make animation simpler */
@media (prefers-reduced-motion: reduce) {
    .chevron {
        animation: none;
        opacity: 1;
        transform: translateX(6px) scale(1);
    }
}

.quick-link.active {
    font-weight: 600;
    color: transparent;
    background-image: linear-gradient(to right,#eee, #0026bd, #fff);
    -webkit-background-clip: text;
    background-clip: text;
    background-size: 200%;
    background-position: -200%;
    animation: animated-gradient 3s infinite reverse;
}

@keyframes animated-gradient {
    to {
        background-position: 200%;
    }
}

.text-color-animation {
    font-weight: 600;
    color: transparent;
    background-image: linear-gradient(to right,#fff, #ff92ef, #fff992);
    -webkit-background-clip: text;
    background-clip: text;
    background-size: 200%;
    background-position: -200%;
    animation: animated-gradient 3s infinite reverse;
}

.recommended-badgex {
    position: absolute;
    top: -12px;
    left: 50%;
    transform: translateX(-50%);
    background: #ffeddc;
    font-size: 10px;
    padding: 2px 12px;
    border-radius: 20px;
    font-weight: 400;
    z-index: 5;
    text-wrap: nowrap
}

.status-badge {
    position: absolute;
    top: -11px;
    left: 50%;
    transform: translateX(-50%);
    background: #fff;
    border: 1px solid #dedede;
    font-size: 10px;
    padding: 2px 12px;
    border-radius: 20px;
    font-weight: 400;
    z-index: 5;
    text-wrap: nowrap
}

.status-badge-bottom {
    position: absolute;
    bottom: -10px;
    left: 50%;
    transform: translateX(-50%);
    background: #fff;
    border: 1px solid #fe7663;
    font-size: 10px;
    padding: 2px 12px;
    border-radius: 20px;
    font-weight: 400;
    z-index: 5;
    text-wrap: nowrap;
}

.recommended-badge-success {
    position: absolute;
    top: -12px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 14px;
    background-color: #fff;
    color: #6fd787;
    border-radius: 100%;
    font-weight: 400;
    z-index: 5;
    text-wrap: nowrap
}

.recommended-badge-status {
    position: absolute;
    top: -12px;
    left: 50%;
    transform: translateX(-50%);
    background: #dcffde;
    font-size: 10px;
    padding: 2px 12px;
    border-radius: 20px;
    font-weight: 400;
    z-index: 5;
    text-wrap: nowrap
}

.schedule-card {
    flex: 0 0 auto;
    border: 1px solid #ddd;
    padding: 8px;
    padding-bottom: 2px;
    /*    box-shadow: 0 2px 4px rgba(0,0,0,0.1);*/
}

.schedule-next-date {
    flex: 0 0 auto;
    border: 1px dashed #ddd;
    padding: 8px;
    padding-bottom: 2px;
    /*    box-shadow: 0 2px 4px rgba(0,0,0,0.1);*/
}

/* Circular seat styles */
.seat-circle {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    -ms-align-content: center;
    -webkit-align-content: center;
    align-content: center;
}

.sleeper-circle {
    width: 30px;
    height: 62px;
    border-radius: 4px;
    -ms-align-content: center;
    -webkit-align-content: center;
    align-content: center;
}

.seat-text {
    display: block;
    font-size: 11px;
    font-weight: bold;
}


.seat-unlocked {
    background-color: #3CE07B;
}

.seat-locked {
    background-color: #fb9191;
}

/* For small screens (mobile) */
@media (max-width: 576px) {
    .seat-circle {
        width: 24px;
        height: 24px;
    }

    .sleeper-circle {
        width: 26px;
        height: 51px;
    }
}

.seat-status-circle {
    display: inline-block;
    width: 20px;
    height: 20px;
    border-radius: 50%;
}

.available-circle {
    background-color: #3CE07B; /* green */
}

.booked-circle {
    background-color: #fb9191; /* red */
}

.bus-seat-layout-card {
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

    .bus-seat-layout-card.active {
        box-shadow: 0 8px 20px rgba(0,0,0,0.15);
        transform: translateY(-2px) scale(1.01);
        border: 1px solid #fe8c67;
    }
    /* Hover zoom */
    .bus-seat-layout-card:hover {
        transform: translateY(-2px) scale(1.01);
        box-shadow: 0 8px 20px rgba(0,0,0,0.1);
    }

    /* On click press */
    .bus-seat-layout-card:active {
        transform: scale(0.98);
    }

.status-badge.active {
    border: 1px solid #fe8c67;
}

.sold-out-status {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(-0deg);
    font-size: 15px;
    font-weight: 900;
    color: #ff8b66;
    letter-spacing: 2px;
    white-space: nowrap;
    text-transform: uppercase;
    pointer-events: none;
    z-index: 0;
    /*    user-select: none;*/
    /* EXTRA BOLD EFFECT */
    -webkit-text-stroke: 1.5px rgb(254, 129, 46, 0.13);
    text-shadow: 0 0 2px rgb(254, 129, 46, 0.13);
}

.seat-sticky-wrapper {
    position: sticky;
    top: 170px;
    z-index: 10;
    height: fit-content;
}


.next-date-card {
    border: 2px dashed #0d6efd;
    color: #0d6efd;
    cursor: pointer;
    transition: 0.25s ease;
}

    .next-date-card:hover {
        background: rgba(13, 110, 253, 0.1);
        transform: scale(1.03);
    }


.disabled-card {
    opacity: 0.4;
    background-color: aqua !important;
    pointer-events: none;
    filter: grayscale(1);
    cursor: not-allowed !important;
}



/* Default: hidden */
.sticky-wrapper3 {
    display: none;
}

/* Only for small screens */
@media (max-width: 768px) {
    .sticky-wrapper3 {
        position: fixed;
        top: 55px; /* adjust as per header height */
        left: 0;
        right: 0;
        z-index: 5;
        background: white;
        box-shadow: 0 2px 5px rgba(0,0,0,0.15);
    }

        /* When JS adds .show */
        .sticky-wrapper3.show {
            display: block;
        }
}

.mini-wrapper {
    overflow-x: auto;
    white-space: nowrap;
    scroll-behavior: smooth;
}


/* Container */
/*#bus-seat-container-mini-wrapper {
    position: relative;
}*/

/* Shared style for buttons */
/*.mini-scroll-btn {
    border: none;
    background: white;
    padding: 8px 12px;
    border-radius: 50%;
    box-shadow: 0 0 6px rgba(0,0,0,0.2);
    cursor: pointer;
    margin: 5px 0;*/ /* vertical spacing */
/*}*/

/* Left side (Start + Prev) */
/*.left-buttons {
    position: absolute;
    left: 5px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 20;
}*/

/* Right side (Next + End) */
/*.right-buttons {
    position: absolute;
    right: 5px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 20;
}*/

/* Scroll container padding to avoid overlapping buttons */
/*#bus-seat-container-mini {
    padding-left: 70px !important;
    padding-right: 70px !important;
}*/


/* 🔥 Zoom out + shake animation */
@keyframes seatAlertAnimation {
    0% {
        transform: scale(1);
        opacity: 1;
    }

    50% {
        transform: scale(1.2) rotate(0deg);
        opacity: 0.5;
    }

    100% {
        transform: scale(1);
        opacity: 1;
    }
}

.seat-alert-animation {
    animation: seatAlertAnimation 1s ease-in-out forwards;
}
