.btn-primary {
  background-color: #13243E;
  color: #fff;
  border: none;
}
.btn-primary:hover {
  background-color: #13243E;
}

@media (max-width: 992px) {
  #booking-main-container {
    padding-top: 70px;
  }
}

.top-banner {
  background: url("/app/assets/img/bg-banner.jpeg") no-repeat center center;
  background-size: cover;
  margin-bottom: 60px;
}
.top-banner .container {
  position: relative;
  height: 240px;
}
@media (max-width: 992px) {
  .top-banner .container {
    height: 180px;
  }
}
.top-banner .container .search-form-container {
  position: absolute;
  bottom: 0;
  left: 0;
  transform: translateY(50%);
  width: 100%;
  background-color: #fff;
  box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.1607843137);
  border-radius: 10px;
  padding: 15px 18px;
}
@media (max-width: 992px) {
  .top-banner .container .search-form-container {
    width: 94%;
    left: 3%;
    bottom: 10%;
  }
}

.info-row {
  margin-top: 16px;
  margin-bottom: 16px;
}
.info-row h2 {
  display: flex;
  align-items: center;
  justify-content: start;
  gap: 12px;
  font-size: 28px;
  line-height: 32px;
  font-weight: bold;
  color: #0D2440;
  text-transform: uppercase;
  margin-bottom: 12px;
}
.info-row h2 .fa-star {
  color: #DA9426;
  font-size: 18px;
}
@media (max-width: 992px) {
  .info-row h2 {
    font-size: 24px;
    line-height: 28px;
  }
}
.info-row .location-info i {
  font-size: 22px;
  margin-right: 8px;
}
.info-row .location-info span {
  color: #0D2440;
}

#gallery {
  margin-bottom: 20px;
}
#gallery img, #gallery iframe {
  width: 100%;
  height: 416px;
  border-radius: 10px;
  object-fit: cover;
}
@media (max-width: 992px) {
  #gallery img, #gallery iframe {
    height: 280px;
  }
}

.main-description {
  font-size: 15px;
  line-height: 25px;
  font-weight: normal;
  color: #13243E;
  margin-bottom: 20px;
}

#package-detail-tabs {
  margin-bottom: 20px;
}
#package-detail-tabs .nav {
  --bs-nav-link-color: #0D2440;
  --bs-nav-link-hover-color: #0D2440;
  --bs-link-hover-color: #0D2440;
  border-bottom: 2px solid #a5a5a5;
  margin-bottom: 14px;
}
#package-detail-tabs .nav .nav-link {
  text-transform: uppercase;
  font-size: 16px;
  font-weight: 500;
  background: none;
  border: none;
}
#package-detail-tabs .nav .nav-link.active {
  color: #0D2440;
  font-weight: 700;
}
#package-detail-tabs .tab-content .detail-description {
  height: 175px;
  overflow-y: hidden;
}
#package-detail-tabs .tab-content .detail-description.opened {
  height: auto;
}
#package-detail-tabs .tab-content .detail-description .description-title {
  font-size: 18px;
  line-height: 27px;
  font-weight: 600;
}
#package-detail-tabs .tab-content .detail-description .description-text {
  font-size: 15px;
  line-height: 25px;
  margin-bottom: 16px;
}

.amenities-row-container {
  margin-bottom: 20px;
}
.amenities-row-container .amenities-row {
  max-height: 175px;
  overflow-y: hidden;
  color: #13243E;
}
.amenities-row-container .amenities-row.expanded {
  max-height: none;
}
.amenities-row-container .amenities-row .amenity-title {
  font-size: 18px;
  line-height: 27px;
  font-weight: 600;
  border: 1px solid #E8E8E8;
  border-radius: 10px;
  padding: 14px 18px;
  margin-bottom: 12px;
}
.amenities-row-container .amenities-row .amenity-title span {
  margin-left: 12px;
  text-transform: capitalize;
}
.amenities-row-container .amenities-row .amenity-title i {
  height: 20px;
}
.amenities-row-container .amenities-row .amenity-list .amenity-item span {
  font-size: 14px;
  line-height: 21px;
  font-weight: 300;
}
.amenities-row-container .amenities-row .amenity-list .amenity-item i {
  font-size: 13px;
  margin-right: 5px;
}

.descriptions-row-container {
  margin-bottom: 20px;
}
.descriptions-row-container .descriptions-row {
  max-height: 175px;
  overflow-y: hidden;
  color: #13243E;
}
.descriptions-row-container .descriptions-row.expanded {
  max-height: none;
}
.descriptions-row-container .descriptions-row .description-title {
  font-size: 18px;
  line-height: 27px;
  font-weight: 600;
}
.descriptions-row-container .descriptions-row .description-text {
  font-size: 15px;
  line-height: 25px;
  margin-bottom: 16px;
}

.configurator-banner {
  border: 1px solid #E8E8E8;
  border-radius: 10px;
  background-color: #13243E;
  color: #fff;
  padding: 15px 18px;
  font-size: 18px;
  line-height: 27px;
  font-weight: 600;
  display: inline-block;
  margin-bottom: 20px;
}

#steps-container {
  margin-bottom: 22px;
}
#steps-container button.menu-el {
  display: inline-flex;
  align-items: center;
  justify-content: start;
  gap: 9px;
  border: none;
}
#steps-container button.menu-el .menu-el-idx {
  font-size: 22px;
  color: #13243E;
  border: 1px solid #13243E;
  width: 40px;
  height: 40px;
  border-radius: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #EDEDED;
}
#steps-container button.menu-el .menu-el-label {
  font-size: 14px;
  line-height: 21px;
  font-weight: 300;
  color: #13243E;
}
#steps-container button.menu-el.active .menu-el-idx {
  background-color: #13243E;
  color: #fff;
}
#steps-container button.menu-el.future {
  cursor: default;
}
#steps-container button.menu-el.future .menu-el-idx {
  background-color: #fff;
}

.form-check:has(.custom-switch) {
  padding-left: 0px;
}

.custom-switch {
  display: inline-block;
  height: 14px;
  width: 34px;
  background: #e6e6e6;
  border-radius: 40px;
  cursor: pointer;
}
.custom-switch span {
  display: block;
  height: 16px;
  width: 16px;
  margin-top: -2px;
  border-radius: 50%;
  background: #FFF;
  box-shadow: 0 0.1em 0.3em rgba(0, 0, 0, 0.3);
  -webkit-transition: all 300ms;
  -moz-transition: all 300ms;
  transition: all 300ms;
}
.custom-switch.active {
  background-color: #0E2F54;
}
.custom-switch.active span {
  -webkit-transform: translate3d(20px, 0, 0);
  -moz-transform: translate3d(20px, 0, 0);
  transform: translate3d(20px, 0, 0);
}
.custom-switch.active.disabled {
  cursor: default;
  opacity: 0.7;
}

.element-header {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #F5F5F5 0% 0% no-repeat padding-box;
  border: 1px solid #E8E8E8;
  border-radius: 10px;
  padding: 12px;
  margin-bottom: 12px;
}
.element-header i {
  font-size: 24px;
}
.element-header .title {
  font-size: 18px;
  line-height: 27px;
  font-weight: 600;
  color: #13243E;
  letter-spacing: 0px;
}

.room-element {
  display: flex;
  align-items: start;
}
@media (max-width: 992px) {
  .room-element {
    flex-direction: column;
  }
}
.room-element .room-img {
  width: 130px;
  height: 90px;
  border-radius: 10px;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
}
.room-element .room-data {
  display: flex;
  flex-direction: column;
  align-items: start;
  flex: 1;
  margin-left: 20px;
  margin-top: 4px;
}
@media (max-width: 992px) {
  .room-element .room-data {
    margin-left: 0;
  }
}
.room-element .room-data .room-name {
  font-size: 18px;
  line-height: 27px;
  font-weight: 600;
  color: #13243E;
  margin-bottom: 4px;
}
.room-element .room-data .room-description {
  font-size: 14px;
  line-height: 21px;
  font-weight: 300;
  color: #13243E;
}
.room-element .room-data .room-actions {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: end;
  flex-wrap: wrap;
  gap: 12px;
}
.room-element .room-data .room-actions .room-price {
  width: 100%;
  text-align: right;
  font-size: 16px;
  line-height: 24px;
  font-weight: 600;
  color: #13243E;
}
.room-element .room-data .room-actions .room-availability {
  font-size: 10px;
  line-height: 16px;
  font-weight: 600;
}
@media (max-width: 992px) {
  .room-element .room-data .room-actions .room-availability {
    margin-right: 14px;
  }
}
.room-element .room-data .room-actions .details-modal-btn-cnt {
  width: 100%;
  display: flex;
  justify-content: end;
}
.room-element .room-data .room-actions .details-modal-btn-cnt .details-modal-btn {
  background-color: #F5F5F5;
  border: 1px solid #E8E8E8;
  border-radius: 10px;
  padding: 7px 24px;
  font-size: 9px;
  line-height: 13px;
}

.extra .extra-list .extra-element {
  display: flex;
  align-items: center;
  width: 100%;
  gap: 6px;
  margin-bottom: 10px;
}
.extra .extra-list .extra-element .form-switch {
  font-size: 20px;
  padding-left: 0;
}
.extra .extra-list .extra-element .extra-content {
  display: flex;
  align-items: baseline;
  width: 100%;
  gap: 6px;
}
.extra .extra-list .extra-element .extra-content .extra-text {
  font-size: 16px;
  color: #0d2440;
  display: flex;
  flex: 1 0 auto;
  flex-direction: column;
}
.extra .extra-list .extra-element .extra-content .extra-text .extra-link {
  text-decoration: underline;
  display: block;
  color: #0d2440;
}
.extra .extra-list .extra-element .extra-content .extra-line {
  flex: 1 1 100%;
  border-bottom: 1px dashed #707070;
}
.extra .extra-list .extra-element .extra-content .extra-price {
  font-size: 20px;
  font-weight: bold;
  color: #0d2440;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex: 1 0 77px;
}
@media (max-width: 992px) {
  .extra .extra-list .extra-element .extra-content {
    flex-direction: column;
  }
  .extra .extra-list .extra-element .extra-content .extra-line {
    display: none;
  }
  .extra .extra-list .extra-element .extra-content .extra-price {
    flex: 1 0 auto;
  }
}

.flight-row .airline-logo {
  height: 40px;
  width: auto;
}
.flight-row .better-price-badge-container {
  gap: 8px;
}
.flight-row .better-price-badge-container i {
  color: #00B415;
  font-size: 16px;
}
.flight-row .better-price-badge-container .better-price-badge {
  background-color: #00B415;
  color: #fff;
  font-size: 10px;
  line-height: 12px;
  padding: 6px 10px;
  border-radius: 3px;
}
.flight-row .flight-title {
  font-size: 23px;
  line-height: 28px;
  font-weight: bold;
  color: #000;
}
.flight-row .segment-row {
  background-color: #F8F8F8;
  padding: 10px 8px;
  margin-top: 5px;
}
.flight-row .segment-row .flight-info .label {
  font-size: 13px;
  line-height: 15px;
  font-weight: bold;
  color: #13243E;
}
.flight-row .segment-row .flight-info .value {
  font-size: 16px;
  line-height: 19px;
  font-weight: 500;
  color: #13243E;
}
.flight-row .segment-row .flight-info .value.min-fs {
  font-size: 10px;
  line-height: 12px;
  text-align: center;
}
.flight-row .segment-row .flight-info .flight-duration-separator {
  position: relative;
  width: 90px;
  margin: 6px auto 4px;
  border-top: 2px solid #FEB500;
}
.flight-row .segment-row .flight-info .flight-duration-separator::before,
.flight-row .segment-row .flight-info .flight-duration-separator::after {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 12px;
  height: 12px;
  background-color: #FEB500;
  border-radius: 50%;
}
.flight-row .segment-row .flight-info .flight-duration-separator::before {
  left: 0;
}
.flight-row .segment-row .flight-info .flight-duration-separator::after {
  right: 0;
}

@media (min-width: 992px) {
  #cart-main-container {
    position: sticky;
    top: 20px;
  }
}
@media (max-width: 992px) {
  #cart-main-container {
    margin-top: 20px;
  }
}

.temp-cart-row {
  color: #13243E;
}
.temp-cart-row .temp-cart-title {
  font-size: 20px;
  line-height: 30px;
  font-weight: bold;
  border-bottom: 1px solid #707070;
  padding-bottom: 8px;
  margin-bottom: 16px;
}
.temp-cart-row .temp-cart-hotel {
  font-size: 21px;
  line-height: 31px;
  font-weight: 600;
}
.temp-cart-row .fa-star {
  color: #DA9426;
  font-size: 10px;
}
.temp-cart-row .temp-cart-hotel-geo {
  font-size: 13px;
  line-height: 20px;
  font-weight: 300;
  font-style: italic;
}

.final-cart {
  color: #13243E;
}
.final-cart .cart-title {
  font-size: 20px;
  line-height: 30px;
  font-weight: bold;
  border-bottom: 1px solid #707070;
  padding-bottom: 8px;
  margin-bottom: 16px;
}
.final-cart .cart-service {
  display: flex;
  align-items: start;
  gap: 12px;
  margin-bottom: 35px;
}
.final-cart .cart-service i {
  font-size: 13px;
  color: #000;
  padding-top: 8px;
}
.final-cart .cart-service i.fa-star {
  color: #DA9426;
  font-size: 10px;
  padding-top: 0;
}
.final-cart .cart-service .service-info {
  flex: 1;
}
.final-cart .cart-service .service-info .service-title {
  font-size: 21px;
  line-height: 31px;
  font-weight: 600;
}
.final-cart .cart-service .service-info .service-subtitle {
  font-size: 13px;
  line-height: 20px;
  font-weight: 300;
  font-style: italic;
}
.final-cart .cart-service .service-info .flight-segment {
  max-width: 300px;
}
.final-cart .cart-service .service-info .flight-segment .segment-title {
  font-size: 13px;
  line-height: 20px;
  font-weight: 300;
  font-style: italic;
}
.final-cart .cart-service .service-info .flight-segment .segment-time {
  font-size: 20px;
  line-height: 30px;
  font-weight: 600;
}
.final-cart .cart-service .service-info .flight-segment .segment-code {
  font-size: 12px;
  line-height: 18px;
}
.final-cart .cart-service .service-info .flight-segment .segment-time-diff {
  font-size: 10px;
  line-height: 12px;
  text-align: center;
}
.final-cart .cart-service .service-info .flight-segment .segment-time-separator {
  position: relative;
  width: 90%;
  margin: 6px auto 4px;
  border-top: 2px solid #FEB500;
}
.final-cart .cart-service .service-info .flight-segment .segment-time-separator::before, .final-cart .cart-service .service-info .flight-segment .segment-time-separator::after {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 12px;
  height: 12px;
  background-color: #FEB500;
  border-radius: 50%;
}
.final-cart .cart-service .service-info .flight-segment .segment-time-separator::before {
  left: 0;
}
.final-cart .cart-service .service-info .flight-segment .segment-time-separator::after {
  right: 0;
}
.final-cart .cart-service .service-info .cart-row .row-name {
  font-size: 12px;
  line-height: 18px;
  font-weight: 600;
}
.final-cart .price-cnt {
  width: 100%;
  border: 1px solid #E8E8E8;
  border-radius: 10px;
  background-color: #F5F5F5;
  padding: 6px 12px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.final-cart .price-cnt .price-label {
  font-size: 17px;
  line-height: 26px;
}
.final-cart .price-cnt .price-total {
  font-size: 45px;
  line-height: 46px;
  font-weight: 600;
}
.final-cart .cancellation-policies-btn {
  margin-top: 8px;
  background-color: #EEE2EC;
  border-radius: 0px;
  padding: 12px;
}
.final-cart .cancellation-policies-btn:hover {
  background-color: #EEE2EC;
}
.final-cart .cancellation-policies-btn i {
  font-size: 17px;
  color: #FE6464;
}
.final-cart .cancellation-policies-btn span {
  font-size: 13px;
  line-height: 20px;
  font-weight: 400;
  color: #000;
}
.final-cart .cart-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  margin-top: 20px;
}
.final-cart .cart-actions .btn {
  flex: 1;
  font-size: 9px;
  line-height: 13px;
  border: 1px solid #E8E8E8;
  border-radius: 10px;
  background-color: #F5F5F5;
}

#cancellationPoliciesModal #cancellationPoliciesModalLabel i {
  font-size: 17px;
  color: #FE6464;
}
#cancellationPoliciesModal #cancellationPoliciesModalLabel span {
  font-size: 13px;
  line-height: 20px;
  font-weight: 400;
  color: #000;
}
#cancellationPoliciesModal .cancellation-policy-service {
  margin-bottom: 12px;
}
#cancellationPoliciesModal .cancellation-policy-service .cancellation-policy-title {
  font-size: 21px;
  line-height: 24px;
  font-weight: 700;
  color: #0D2440;
  margin-bottom: 4px;
}
#cancellationPoliciesModal .cancellation-policy-service .cancellation-policy-text {
  margin-bottom: 0px;
  font-size: 13px;
  font-weight: 400;
  color: #000;
}

#cart-form {
  border-top: 1px solid #707070;
  padding-top: 20px;
}
#cart-form .row {
  --bs-gutter-y: 1rem;
}
#cart-form .row label {
  font-size: 14px;
  color: #13243E;
}
#cart-form .row label:has(+ input[required])::before {
  content: "*";
  color: red;
  font-size: 18px;
}
#cart-form .login-title {
  color: #13243E;
  font-size: 16px;
  line-height: 25px;
  font-weight: 500;
}
#cart-form .login-subtitle {
  color: #13243E;
  font-size: 12px;
  line-height: 18px;
  font-weight: 400;
  margin-bottom: 8px;
}
#cart-form .login-subtitle button {
  color: #13243E;
  font-size: 12px;
  line-height: 18px;
}
#cart-form .login-registration-text b {
  cursor: pointer;
}
#cart-form .logged-username {
  color: #13243E;
  font-size: 18px;
  font-weight: 600;
}
#cart-form .element-header {
  align-items: start;
}
#cart-form .element-header i {
  font-size: 15px;
  padding-top: 6px;
}
#cart-form .mini-title {
  font-weight: bold;
  color: #0E2F54;
}
#cart-form .mini-title .addition {
  font-weight: 400;
  font-size: 13px;
}
#cart-form .invoice-row {
  display: flex;
  align-items: center;
  gap: 48px;
}
#cart-form .invoice-row .label {
  font-weight: 700;
  color: #0E2F54;
}
@media (max-width: 992px) {
  #cart-form .invoice-row {
    flex-direction: column;
    gap: 6px;
    align-items: start;
  }
}
#cart-form .coupon-row .coupon-title {
  font-size: 22px;
  line-height: 28px;
  font-weight: bold;
  color: #0E2F54;
  margin-bottom: 10px;
}
#cart-form .coupon-row .coupon-subtitle {
  font-size: 13px;
  line-height: 13px;
  color: #0E2F54;
  font-weight: 400;
}
#cart-form .payments-row .element-header {
  align-items: center;
}
#cart-form .payments-row .element-header i {
  font-size: 34px;
}
#cart-form .payments-row .element-header img {
  width: 42px;
  height: 34px;
}
#cart-form .payments-row .element-header .element-titles {
  flex: 1;
}
#cart-form .pay-btn {
  padding: 14px 90px;
  font-size: 18px;
  line-height: 27px;
  font-weight: 600;
  border-radius: 10px;
}

.form-check-label {
  display: flex;
  flex-direction: column;
  justify-content: start;
  gap: 0;
}
.form-check-label span {
  font-size: 13px;
  line-height: 15px;
  font-weight: 700;
  color: #0E2F54;
}
.form-check-label small {
  font-size: 11px;
}

.form-control {
  font-size: 13px;
  line-height: 20px;
  padding: 12px 20px;
  border: 1px solid #EBEBEB;
  border-radius: 11px;
}

.form-check-input[type=checkbox] {
  border-radius: 0;
  border: 1px solid #707070;
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.15);
  width: 21px;
  height: 21px;
  cursor: pointer;
}

.rate-banner {
  margin-top: 30px;
  border: 1px solid #E8E8E8;
  border-radius: 10px;
  padding: 20px;
  font-size: 10px;
  line-height: 16px;
  font-weight: normal;
  text-align: center;
}