/* Style CSS Copyrigth 2024 by BusX */
@font-face {
  font-family: 'SukhumvitSet-Text';
  src: url('../plugin/font/SukhumvitSet-Text.ttf');
}

:root {
  --fz-title: 28px;
  --fw-title: bold;
  --fc-title: #333333;

  --fz-subtitle: 24px;
  --fw-subtitle: bold;
  --fc-subtitle: #333333;

  --fc-green: #04CF7A;

  --theme-bus: #036cb3;
  --text-bus: #FFFFFF;

  --box-shadow-2: 0 20px 25px -5px #036cb31a, 0 10px 10px -5px #036cb30d;
}

body {
  font-family: 'SukhumvitSet-Text', sans-serif;
  font-size: 16px;
  font-weight: 400;
  color: #333;
  background-color: #ffffff;
}

.text-color {
  color: var(--theme-bus);
}

.bg-gray {
  background-color: #F4F4F4;
}

.navbar {
  background-color: var(--theme-bus);

  .container {
    max-width: 1100px;
    width: 100%;
  }

  .navbar-brand {
    img {
      height: 50px;
    }
  }

  .navbar-toggler {
    border: none !important;
    color: #FFF;
  }

  .nav-link {
    color: var(--text-bus);
    font-size: 16px;
    font-weight: 400;
  }

  .nav-link.active,
  .nav-link.show {
    color: var(--text-bus);
    text-decoration: underline;
  }

  .nav-link:hover {
    color: var(--text-bus);
    text-decoration: underline;
  }

  .card-language {
    display: flex;
    align-items: center;
    justify-content: start;

    .btn-language {
      color: #FFF;
      padding: 5px 5px;
      text-decoration: none;
      font-weight: 400;

      img {
        width: 20px;
        height: 20px;
        margin-right: 5px;
      }

      span {
        font-size: 14px;
      }
    }

    @media (max-width: 768px) {
      justify-content: flex-start
    }
  }
}

#search .box-centent {
  border-radius: 16px;
  box-shadow: var(--box-shadow-2);
  position: relative;
  z-index: 15;
}

.form-search {
  position: relative;
  z-index: 10;

  .warpper-search {
    position: relative;
    /* ความสูง banner เท่ากับสัดส่วนภาพของ watcharintour (1900x515)
       ไฟล์รูปยังเต็มเฟรม ให้ object-fit: cover ครอปตอนแสดงผล โดยชิดล่างเพื่อเก็บตัวรถ */
    aspect-ratio: 1900 / 515;
    padding: 0;

    .background {
      display: contents;

      img {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        /* รูปมีข้อความแบรนด์ด้านบน + รถด้านล่าง ครอปกลางภาพจึงเห็นครบทั้งคู่ */
        object-position: center center;
      }

    }

    .content {
      /* วางให้กึ่งกลางฟอร์มตรงกับขอบล่างของ banner (ครึ่งล่างของฟอร์มล้นออกนอกรูป) */
      position: absolute;
      left: 0;
      right: 0;
      bottom: 0;
      transform: translateY(50%);
      padding: 0;

      .title {
        font-size: 36px;
        font-weight: bold;
        text-align: center;
        margin: 0;

        span:first-child {
          color: var(--theme-bus);
        }

        span:last-child {
          color: rgb(0 33 67 / 80%);
        }
      }

      .box-centent {
        max-width: 1100px !important;
        margin: 0 auto;
        box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
        padding: 30px;

        .form-search-trip {

          .card-origin,
          .card-destination,
          .card-departure,
          .card-return,
          .card-passenger {
            background-color: #fff !important;
          }
        }
      }
    }
  }

  /* ต่ำกว่า 1200px widget BusX สลับฟอร์มเป็นแบบเรียงตั้ง (สูงขึ้นมาก) ถ้ายังลอยทับจะบัง banner หมด
     จึงแสดงรูปเต็มความกว้างตามสัดส่วนจริง แล้วดึงฟอร์มขึ้นทับช่วงล่างของ banner
     ให้ระดับเดียวกับเว็บต้นแบบ watcharintour (ขอบบนฟอร์มทับ ~37% ของความสูง banner) */
  @media (max-width: 1199px) {
    .warpper-search {
      aspect-ratio: auto;

      .background {
        display: block;

        img {
          position: static;
          width: 100%;
          height: auto;
        }
      }

      .content {
        position: relative;
        z-index: 15;
        /* ต้องล้าง translateY(50%) ของ desktop ไม่งั้นฟอร์มถูกดันลงครึ่งความสูงของตัวเอง */
        transform: none;
        /* margin % อิงความกว้าง; banner สูง 27.1% ของความกว้าง → -10% ≈ ทับ 37% ของ banner */
        margin-top: -10%;
        padding: 0 10px;
      }
    }
  }

  @media (max-width: 575px) {
    .warpper-search {
      .content {
        .box-centent {
          padding: 20px;
        }
      }
    }
  }

  /* modal เลือกต้นทาง/ปลายทางของ widget BusX ใช้เฉพาะตอนเปิด (.show) บนมือถือ
     แต่ desktop .content มี translateY ซึ่งทำให้ position:fixed ของ modal อ้างอิงกล่องฟอร์ม
     แทน viewport — ไอคอนแว่นขยายที่ถูกซ่อนนอกจอจึงโผล่ริมขวา ซ่อนทิ้งตอนยังไม่เปิด */
  #modal-origin:not(.show),
  #modal-destination:not(.show) {
    display: none;
  }

}

.our-services {
  /* เว้นที่ให้ครึ่งล่างของ search form ที่ล้นออกนอก banner (translateY 50%) */
  padding-top: 180px;

  .card-our-services {
    padding-bottom: 50px;

    .card-content {
      position: relative;

      .card-menu {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        padding: 0;

        .img-menu {
          width: 90px;
          height: 100px;
          margin-bottom: 5px;

          object {
            width: 100%;
            height: 100%;
          }
        }

        .text-menu {
          text-align: center;

          strong {
            font-size: 18px;
            font-weight: bold;
            color: #333333;
          }
        }
      }

      .owl-nav.disabled {
        display: none !important;
      }

      .owl-nav {
        position: absolute;
        top: 50%;
        width: 100%;
        transform: translateY(-50%);
        display: flex;
        justify-content: space-between;
        pointer-events: none;

        .owl-next {
          margin-right: 20px;
        }

        button {
          font-size: 50px;
          pointer-events: auto;
        }
      }

      .owl-dots .owl-dot span {
        width: 40px;
        height: 5px;
        margin: 0 5px;
        background-color: #ccc;
        border-radius: 5px;
        transition: background-color 0.3s ease;
      }

      .owl-dots .owl-dot:hover {
        span {
          background-color: #7d7d7d;
        }
      }

      .owl-dots .owl-dot.active {
        span {
          background-color: #7d7d7d;
        }
      }

    }
  }

  @media (min-width: 1200px) {
    .card-content {
      padding: 0 120px;
    }
  }

  @media (min-width: 1400px) {
    .card-content {
      padding: 0 190px;
    }
  }

  @media (max-width: 1199px) {
    & {
      /* ต่ำกว่า 1200px form อยู่ใน flow (ดึงขึ้นทับ banner ด้วย margin ติดลบ) ไม่มีส่วนล้น */
      padding-top: 40px;
    }
  }

}

.news-home {
  .container {
    display: flex;
    justify-content: center;
  }

  .card-news {
    width: 100%;
    max-width: 1100px;
    padding: 50px 0;

    .card-header {
      position: relative;
      text-align: center;
      margin-bottom: 50px;

      h2 {
        font-size: var(--fz-title);
        font-weight: var(--fw-title);
        color: var(--fc-title);
        margin: 0;

        &::after {
          content: "";
          position: absolute;
          display: block;
          width: 50px;
          height: 3px;
          background: #333333;
          left: 0;
          right: 0;
          bottom: -10px;
          margin: auto;
        }
      }
    }

    /* .view-all {
      a {
        text-align: end;
        display: block;
        color: var(--fc-subtitle);
        margin-top: 20px;
        text-decoration: none;
      }
    } */

    .card-content {
      a {
        text-decoration: none;

        .card-img {
          position: relative;
          overflow: hidden;
          border-radius: 10px;
          box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
          transition: 0.3s;

          img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: center;
          }

          &:hover {
            transform: scale(1.05);
          }
        }
      }
    }
  }
}

.popular-trips {
  .card-popular-trips {
    padding: 50px 0;

    .card-header {
      display: flex;
      justify-content: center;
      position: relative;
      margin-bottom: 24px;

      .wrapper-header-trip {
        max-width: 1100px;
        width: 100%;

        h2 {
          font-size: var(--fz-title);
          color: var(--fc-title);
          margin: 0;
        }
      }
    }

    .card-content {
      display: flex;
      justify-content: center;

      .wrapper-trip {
        position: relative;
        max-width: 1100px;
        width: 100%;
        border: 1px solid #e9ecef;
        border-radius: 16px;
        overflow: hidden;
        transition: transform 0.3s, box-shadow 0.3s, border-color 0.3s;
        margin: 10px 0;
        padding: 20px;
        /* trip ที่ไม่มีคอลัมน์รูป (10/12 col) ให้แถวยังสมดุลกึ่งกลาง */
        justify-content: center;

        /* ต่ำกว่า lg: ชื่อสถานียาวไม่เท่ากัน ถ้า align กลางตัวเลขเวลาจะเหลื่อมกัน
           จึง align บนให้ 06:30/09:30 เริ่มบรรทัดเดียวกัน (ทับ .align-items-center ของ bootstrap) */
        @media (max-width: 991px) {
          align-items: flex-start !important;
        }

        .box-img {
          width: 100%;
          height: 100%;
          overflow: hidden;
          border-radius: 10px;

          img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: center;
          }

          /* ต่ำกว่า lg รูปเป็น col-12 เต็มแถว แสดงตามสัดส่วนจริงของภาพ */
          @media (max-width: 991px) {
            margin-bottom: 20px;

            img {
              height: auto;
            }
          }
        }

        .box-departure,
        .box-arrival {
          text-align: center;

          p {
            font-size: 30px;
            font-weight: bold;
            margin: 0;
            color: #333333;
          }

          span {
            font-size: 16px;
            font-weight: 500;
            color: #333333;
          }

          @media (max-width:768px) {
            margin-bottom: 20px;
          }

          /* มือถือ: เวลาออก/ถึง อยู่ใน col-5 ลดขนาดให้พอดีคอลัมน์ */
          @media (max-width: 575px) {
            p {
              font-size: 22px;
            }

            span {
              font-size: 14px;
            }
          }
        }

        .box-time-service {
          display: grid;
          text-align: center;

          i {
            font-size: 20px;
            color: #000000;
          }

          strong {
            font-size: 16px;
            font-weight: 800;
            color: #333333;
          }

          .time-unit {
            font-size: 16px;
            font-weight: 500;
            padding-top: 10px;
            color: #6c6c6c;
          }

          a {
            display: block;
            text-decoration: none;
            font-size: 14px;
            color: #6c6c6c;
            margin-top: 10px;
          }

          @media (max-width: 991px) {
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            margin-top: 20px;
          }

          @media (max-width:768px) {
            margin-bottom: 20px;
          }
        }

        /* ที่ < lg: ทำให้ col ของ box-time-service ยืดสูงเท่า col ราคา */
        @media (max-width: 991px) {
          &>div:has(.box-time-service) {
            align-self: stretch;
            display: flex;
            align-items: center;
            justify-content: center;
          }
        }

        .arrow-icon {
          color: var(--theme-bus);

          /* ต่ำกว่า lg แถว align บน — กำหนดสูงเท่าบรรทัดตัวเลขเวลา ให้ลูกศรลอยตรงระดับเวลา */
          @media (max-width: 991px) {
            .d-flex {
              height: 45px;
              /* 30px × line-height 1.5 */
            }
          }

          @media (max-width: 575px) {
            .d-flex {
              height: 33px;
              /* 22px × 1.5 */
            }
          }
        }

        .box-button {
          display: grid;
          text-align: center;
          padding: 10px;

          strong {
            font-size: 32px;
            font-weight: bold;
            color: var(--fc-green);
          }

          button {
            padding: 10px 20px;
            background-color: var(--theme-bus);
            color: #ffffff;
            border: none;
            border-radius: 5px;
            font-size: 16px;
            font-weight: bold;
            margin-top: 10px;
            cursor: pointer;
            text-decoration: none;
          }

          @media (max-width:768px) {
            margin-bottom: 20px;
          }
        }

        &:hover {
          /* ยกการ์ดขึ้นพร้อมเงาโทนสีธีม แทนการขยาย scale ทั้งแถวแบบเดิม */
          transform: translateY(-4px);
          box-shadow: var(--box-shadow-2);
          border-color: transparent;
        }

        @media (max-width: 575px) {
          & {
            padding: 20px 0 0 0;
          }
        }
      }


    }

  }
}

.gallery {
  background-color: #F4F4F4;

  .card-gallery {
    padding: 50px 0;

    .card-header {
      display: flex;
      justify-content: center;
      position: relative;
      margin-bottom: 24px;

      .wrapper-header-gallery {
        max-width: 1100px;
        width: 100%;

        h2 {
          font-size: var(--fz-title);
          color: var(--fc-title);
          margin: 0;
        }
      }
    }

    .card-content {
      display: flex;
      justify-content: center;

      .gallery-bus {
        max-width: 1100px;
        width: 100%;

        .card-img {
          position: relative;
          width: 100%;
          height: 200px;
          overflow: hidden;
          border-radius: 10px;
          box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
          transition: 0.3s;

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

          &:hover {
            transform: scale(1.05);
          }
        }
      }
    }
  }
}

.gallery .card-gallery .card-content .gallery-bus .card-img {
  height: 200px;
  overflow: hidden;

  @media (max-width: 500px) {
    height: 100px !important;
  }
}

.gallery .card-gallery .card-content .gallery-bus .card-img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.banner-inc {
  position: relative;
  width: 100%;
  height: 380px;
  overflow: hidden;

  @media (max-width: 800px) {
    height: 100% !important;
  }

  .card-img {
    width: 100%;
    height: 100%;

    &>div {
      height: 100%;
    }

    img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center 80%;
      opacity: 0.5;

      &::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: rgba(0, 0, 0, 0.3);
        z-index: 1;
      }
    }
  }

  .card-text {

    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
    z-index: 2;
    width: 90%;

    .text-title {
      font-size: 30px;
      font-weight: 700;
      color: #000000;
      text-align: center;

      @media (max-width: 520px) {
        font-size: 18px;
      }
    }

    .text-link {
      text-align: center;
      font-size: 24px;
      color: #000000;

      a {
        font-size: 24px;
        color: #000000;
        text-decoration: none;
      }

      @media (max-width: 520px) {
        font-size: 16px;

        a {
          font-size: 16px;
        }
      }
    }
  }

  .card-text-nd {
    position: relative;
    top: 36%;
    left: 50%;
    transform: translate(-50%, -270%);

    .text-title {
      font-size: 30px;
      font-weight: 700;
      color: #000000;
      text-align: center;
    }

    .text-link {
      text-align: center;
      font-size: 24px;
      color: #000000;

      a {
        font-size: 24px;
        color: #000000;
        text-decoration: none;
      }
    }
  }
}

.table tbody td {
  font-size: 16px;
}

.contact-us {
  display: flex;
  justify-content: center;

  .content {
    max-width: 1100px;
    width: 100%;

    .form-check-input:checked {
      background-color: var(--theme-bus);
      border-color: var(--theme-bus);
    }

    .btn-contact {
      color: #FFFFFF;
      background-color: var(--theme-bus);
    }

    .btn-contact:hover {
      color: var(--theme-bus);
      background-color: #FFFFFF;
      border: solid 1px var(--theme-bus);
    }

    .card-info {
      .card-title {
        font-size: var(--fz-title);
        color: var(--theme-bus) !important;
        font-weight: bold;
      }

      .card-text {
        font-size: 16px;
        color: var(--fc-title);
      }
    }

    .card-contact {
      margin-top: 10px;
      border: 0;

      @media (max-width: 991px) {
        margin-bottom: 10px;
      }

      .card-warpper {
        position: relative;
        display: contents;
        text-align: center;

        .card-img {
          position: relative;
          left: 50%;
          transform: translateX(-50%);

          width: 40px;
          height: 40px;
          margin-bottom: 10px;

          img {
            width: 100%;
            height: 100%;
          }
        }

        .card-title {
          font-size: 18px;
          font-weight: bold;
          color: var(--theme-bus);
        }

        .card-text {
          font-size: 16px;
          position: relative;
          overflow: hidden;
          text-overflow: ellipsis;
          white-space: nowrap;

          a {
            text-decoration: none;
            color: var(--fc-title);
          }
        }

      }

      @media (max-width: 768px) {
        & {
          margin-top: 20px;
          margin-bottom: 20px;
        }
      }

    }
  }
}

.news {
  display: flex;
  justify-content: center;

  .news-content {
    max-width: 1100px;
    width: 100%;
  }

  #data-container {
    align-items: start;
  }

  .card {
    margin-bottom: 20px;
    border: 1px solid #ddd;
    border-radius: 5px;
    padding: 0px;

    .card-img-top {
      height: 350px;
      border-radius: 5px 5px 0 0;

      img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        border-radius: 5px;
      }
    }
  }

  .card-content {
    a {
      display: block;
      color: inherit;
      text-decoration: none;
    }

    .card {
      height: auto;
      border: 1px solid #e5e5e5;
      border-radius: 8px;
      overflow: hidden;
      transition: all 0.3s ease;
    }

    .card:hover {
      box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
      transform: translateY(-5px);
    }

    .card-img-top {
      display: block;
      width: 100%;
      height: 230px;
      object-fit: cover;
      object-position: top;
    }

    .card-body {
      padding: 12px 15px;
    }

    .card-topic {
      display: -webkit-box;
      font-size: 18px;
      font-weight: 600;
      line-height: 1.4;
      max-height: calc(18px * 1.4 * 2);
      margin: 0;
      overflow: hidden;
      text-overflow: ellipsis;
      -webkit-line-clamp: 1;
      -webkit-box-orient: vertical;
      word-break: break-word;
    }

    .card-view {
      font-size: 16px;
      color: #999999;
      margin-bottom: 0;
    }

    @media (max-width: 575px) {
      .card-img-top {
        height: 240px;
      }
    }
  }

  .detail {
    font-size: 16px;
    margin-bottom: 0px;
    color: var(--fc-title);
  }


  .paginationjs {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 20px;

    .paginationjs-pages {
      display: flex;
      justify-content: center;
      align-items: center;
      margin-top: 20px;

      li {
        list-style: none;
        margin: 0 5px;
        padding: 5px 10px;
        border: 1px solid #ddd !important;
        border-radius: 5px;
        cursor: pointer;

        a {
          background-color: #fff;
          color: var(--title-color);
          text-decoration: none;
        }

        &.active {
          background-color: #fff;
          border-color: var(--theme-bus);

          a {
            color: var(--theme-bus);
            background-color: #fff !important;
          }
        }
      }
    }

    .paginationjs-prev,
    .paginationjs-next {
      margin: 0 10px;
      padding: 5px 10px;
      border: 1px solid #ddd;
      border-radius: 5px !important;
      cursor: pointer;

      a {
        color: var(--title-color);
        text-decoration: none;
      }

      &.disabled {
        cursor: not-allowed;
        opacity: 0.5;
      }
    }
  }
}

.news-detail {
  .detail-section {
    display: flex;
    justify-content: center;

    .content-detail {
      max-width: 1100px;
      width: 100%;

      img:first-of-type {
        @media (max-width: 520px) {
          width: 90% !important;
          height: auto !important;
          margin: auto;
        }
      }
    }
  }
}

.contact-us {
  display: flex;
  justify-content: center;

  .content {
    max-width: 1100px;
    width: 100%;
  }
}

.about {
  .warpper-row {
    display: flex;
    justify-content: center;

    .warpper-body {
      max-width: 1100px;
      width: 100%;

      table {
        width: 100%;
        border-collapse: collapse;
        border-radius: 5px;
        overflow: hidden;
      }

      th,
      td {
        border: 2px solid #e7e7e7;
        padding: 10px;
        text-align: left;
      }

      th {
        background-color: #f4f4f4;
      }

      tr:first-child th:first-child {
        border-top-left-radius: 5px;
      }

      tr:first-child th:last-child {
        border-top-right-radius: 5px;
      }

      tr:last-child td:first-child {
        border-bottom-left-radius: 5px;
      }

      tr:last-child td:last-child {
        border-bottom-right-radius: 5px;
      }
    }
  }
}

.timetables {
  .warpper-row {
    display: flex;
    justify-content: center;

    .warpper-body {
      max-width: 1100px;
      width: 100%;

      #list-timetables {
        .table {
          width: 100%;
        }

        .table thead th {
          background-color: var(--theme-bus);
          color: #FFF;
          border-bottom: 1px solid #036cb3;
          font-size: 20px;
          font-weight: 700 !important;
        }
      }

      hr {
        margin-top: 20px;
        margin-bottom: 30px;
      }
    }
  }

  table {
    box-shadow: 0 0 3px rgba(0, 0, 0, 0.1);
    width: 90%;
    margin-top: 10px;
  }

  table thead th {
    font-size: 16px;
    color: var(--title-color);
    background-color: #f5f4f4a3;
    text-align: center;
  }

  table tbody td {
    font-size: 14px;
    color: var(--title-color);
    text-align: center;
  }

  table tbody td span {
    border: solid 1px var(--theme-bus);
    color: var(--theme-bus) !important;
    border-radius: 10px;
    padding: 0 5px;
    text-align: center;
  }

}

.container-footer {
  position: relative;
  width: 100%;

  @media (max-width: 767px) {
    .container {
      max-width: 100%;
    }
  }

  .card-popular-routes {
    background-color: #F4F4F4;
    padding: 30px 0;

    .container {
      display: flex;
      justify-content: center;
      align-items: center;

      .card-wapper {
        max-width: 1100px;
        width: 100%;

        .card-header {
          position: relative;
          padding-bottom: 15px;
          text-align: start;

          h2 {
            font-size: var(--fz-title);
            color: var(--fc-title);
            margin: 0;
          }
        }

        .card-content {

          .card-link-img {
            a {
              position: relative;
              text-decoration: none;
              display: flex;
              flex-direction: column;
              justify-content: start;
              gap: 10px;

              .card-img {
                position: relative;
                overflow: hidden;
                border-radius: 10px;
                box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
                transition: 0.3s;

                &:hover {
                  transform: scale(1.05);
                }

                img {
                  width: 100%;
                  height: 100%;
                  object-fit: cover;
                  object-position: center;
                }

                .card-overlay {
                  position: absolute;
                  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.5;
                }
              }

              .card-text {
                position: absolute;
                bottom: 0;
                width: 100%;
                padding: 10px 0;
                text-align: center;

                strong {
                  font-size: 16px;
                  font-weight: 900;
                  color: #ffffff;
                }
              }

            }
          }

          .card-link {
            a {
              text-decoration: none;

              .card-text {
                text-align: start;

                strong {
                  font-size: 16px;
                  font-weight: 900;
                  color: var(--theme-bus);
                }
              }

            }
          }

          .card-route {
            height: 100%;

            a {
              display: flex;
              align-items: center;
              gap: 15px;
              height: 100%;
              background-color: #ffffff;
              border: 1px solid #e5e5e5;
              border-radius: 10px;
              padding: 15px 20px;
              text-decoration: none;
              transition: 0.3s;

              &:hover {
                box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
                transform: translateY(-2px);
              }

              .route-icon {
                flex-shrink: 0;
                width: 48px;
                height: 48px;
                border-radius: 50%;
                background-color: var(--theme-bus);
                display: flex;
                justify-content: center;
                align-items: center;

                i {
                  font-size: 20px;
                  color: #ffffff;
                }
              }

              .route-detail {
                display: flex;
                flex-direction: column;
                gap: 4px;
                flex-grow: 1;
                min-width: 0;

                strong {
                  font-size: 16px;
                  font-weight: 900;
                  color: var(--theme-bus);
                }

                .route-time {
                  font-size: 13px;
                  color: #666666;

                  i {
                    margin-right: 4px;
                  }

                  .divider {
                    margin: 0 6px;
                    color: #cccccc;
                  }
                }
              }

              .route-price {
                flex-shrink: 0;
                display: flex;
                flex-direction: column;
                text-align: end;

                small {
                  font-size: 12px;
                  color: #666666;
                }

                strong {
                  font-size: 20px;
                  font-weight: bold;
                  color: var(--fc-green);
                }
              }
            }
          }

        }
      }
    }
  }

  .card-footer {
    background-color: #000000;

    .container {
      display: flex;
      justify-content: center;

      .card-wapper {
        max-width: 1100px;
        width: 100%;
        padding: 50px 0 30px 0;

        .card-content-left {

          h2 {
            font-size: 24px;
            font-weight: var(--fw-title);
            color: #ffffff;
            margin: 0;
          }

          h2:first-child {
            margin-bottom: 10px;
          }

          h2:nth-child(3) {
            margin-top: 20px;
            margin-bottom: 10px;
          }

          strong {
            font-size: 16px;
            font-weight: bold;
            color: #ffffff;
          }
        }

        .card-content-center {
          .card-menu {
            h2 {
              font-size: 24px;
              color: #ffffff;
              margin: 0;
            }

            a {
              text-decoration: none;
              display: block;
              font-size: 16px;
              font-weight: 400;
              color: #ffffff;
              margin-top: 10px;

              &:hover {
                color: #ffffff;
              }
            }
          }

          @media (max-width: 767px) {
            & {
              margin-top: 20px;
              margin-bottom: 10px;
            }
          }
        }

        .card-content-right {
          .card-payment-channel {
            .card-header {
              h2 {
                font-size: 24px;
                color: #ffffff;
                margin: 0;
                margin-bottom: 10px;
              }
            }

            .card-content {
              .card-list {
                display: flex;
                flex-wrap: wrap;
                gap: 10px;

                img {
                  width: auto;
                  height: 30px;
                }
              }
            }
          }

          .card-download {
            .card-header {
              h2 {
                font-size: 24px;
                color: #ffffff;
                margin: 0;
                margin-top: 20px;
                margin-bottom: 10px;
              }
            }

            .card-content {
              .card-list {
                display: flex;
                flex-wrap: wrap;
                gap: 10px;

                a {
                  text-decoration: none;
                  display: flex;
                  align-items: center;
                  justify-content: center;
                  padding: 0;

                  img {
                    width: auto;
                    height: 40px;
                  }
                }
              }
            }
          }

          @media (max-width: 768px) {
            .card-payment-channel {
              .card-header {
                margin-top: 20px;
                margin-bottom: 10px;
              }
            }

            .card-download {
              .card-header {
                margin-top: 20px;
                margin-bottom: 10px;
              }
            }
          }
        }

        .card-bottom {
          display: flex;
          justify-content: center;
          align-items: center;
          margin-top: 20px;

          .card-copyright {
            strong {
              font-size: 16px;
              font-weight: 400;
              color: #ffffff;

              span {
                font-weight: bold;
                color: #ffffff;
              }
            }
          }

          .card-referral {
            display: flex;

            a {
              text-decoration: none;
              display: flex;
              align-items: center;
              justify-content: center;
              padding: 0;
              font-size: 16px;
              font-weight: 400;
              color: #ffffff;

              &:hover {
                color: #ffffff;
              }

              &:last-child {
                color: #ff6700;
              }
            }

            span {
              font-size: 16px;
              font-weight: 400;
              color: #ffffff;
            }
          }

          @media (max-width: 622px) {
            & {
              flex-direction: column;
              align-items: center;
              justify-content: center;
            }
          }

          @media (max-width: 550px) {
            flex-direction: column;

            .card-copyright {
              margin-bottom: 10px;
            }
          }

          @media (max-width: 340px) {
            & {
              margin-top: 20px;

              .card-copyright {
                strong {
                  display: grid;
                  text-align: center;
                }
              }

              .card-referral {
                display: grid;
                text-align: center;
              }
            }
          }

        }
      }
    }
  }

}