/*checkpage*/
.checkpage {
    background: #fff;
    margin: 0;
    padding: 30px 0;
}

.cop-top {
    margin-bottom: 24px;
}

.cop-top .progress {
    display: flex
}

.cop-top .step {
    flex: 1;
    margin-right: 8px;
    position: relative;
}

.cop-top .step:last-child {
    margin-right: 0;
    flex: 0;
    display: flex;
    position: relative;
    flex-direction: column;
    justify-content: flex-end;
}

.cop-top .top {
    font-size: 11px;
    margin-bottom: 8px;
}

.cop-top .step:last-child .top {
    position: absolute;
    right: 0;
    text-wrap: nowrap;
    top: 0;
}

.cop-top .bot {
    display: flex;
    align-items: center;
    width: 100%;
}

.cop-top .circle {
    display: inline-block;
    flex-shrink: 0;
    width: 12px;
    height: 12px;
    margin-right: 8px;
    border: 2px solid #b6bec7;
    border-radius: 50%;
}

.cop-top .step:last-child .circle {
    margin-right: 0
}

.cop-top .circle.active {
    background-color: var(--bs-success);
    border-color: var(--bs-success);
}

.cop-top .line {
    position: relative;
    z-index: 1;
    width: 100%;
    height: 2px;
}

.cop-top .line .div {
    background-color: #b6bec7;
    height: 2px;
}

.cop-top .line .div-active {
    position: absolute;
    z-index: 2;
    width: 50%;
    background-color: var(--bs-success);
    height: 2px;
    top: 0;
}

.cop-top .step:last-child .line {
    display: none
}

.box-cop {
    margin-bottom: 24px;
    padding: 24px 24px 32px;
    border-radius: 8px;
    background: #fff;
    box-shadow: rgba(0, 15, 23, 0.3) 0px 1px 4px;
}

.box-cop .tab-link .btn {
    background: #fff;
    border-color: #00b000;
    border-radius: 5px;
    font-size: 14px;
    color: #00b000
}

.box-cop .tab-link .btn:hover {
    color: #000
}

.box-cop .tab-link .btn.active {
    background: #00b000;
    color: #fff
}

.box-cop.i1 {
    padding: 0
}

.box-cop .box2 {
    padding: 24px 24px 32px;
    border-top: 1px solid #e4e7ea;
}

.box-cop .title {
    font-weight: bold;
    margin-bottom: 24px;
    font-size: 20px;
}

.box-cop .time {
    color: #7e7e7e;
    font-size: 13px;
    margin-bottom: 24px;
}

.box-cop .time i {
    font-size: 18px;
    color: #b6bec7;
}

.route-i {
    position: relative
}

.route-i.i1:after {
    content: "";
    position: absolute;
    top: 16px;
    bottom: -16px;
    left: 16px;
    width: 3px;
    z-index: 1;
    transform: translateX(-50%);
    background-color: var(--primary);
}

.route-i .dc span {
    border-radius: 20px;
    font-weight: 700;
    font-size: 14px;
    line-height: 20px;
    color: #111;
    padding: 6px 16px 6px 48px;
    background-color: #f6f7f8;
    position: relative;
    display: inline-block;
}

.route-i .dc span:before {
    content: "";
    left: 0;
    width: 32px;
    height: 32px;
    background-color: #e4e7ea;
    border-radius: 50%;
    position: absolute;
    top: 0;
}

.route-i .dc span:after {
    content: "";
    margin-top: 10px;
    left: 10px;
    width: 12px;
    height: 12px;
    background-color: var(--primary);
    border-radius: 50%;
    position: absolute;
    top: 0;
}

.route-i .nd {
    padding: 24px 0 32px;
    padding-left: 48px;
}

.route-i+.route-i .nd {
    padding-bottom: 0
}

.box-cop .box1 {
    padding: 24px 24px 32px;
}

.box-cop .box1 .btn-type {
    margin-bottom: 30px;
}

.box-cop .box1 .btn-type .btn {
    border-radius: 20px;
    font-size: 14px;
    text-transform: uppercase;
    padding: 10px 0;
    border: 1px solid var(--primary);
    color: var(--primary);
    width: 180px;
}

.box-cop .box1 .btn-type .btn-primary {
    background: var(--primary);
    color: #fff;
}

.box-cop .box1 .btn-type .btn:hover {
    background: #fff;
}

.box-cop .box1 .btn-type .btn-primary:hover {
    background: var(--navy) ;
    border-color: var(--navy)
}

.box-cop .form-label {
    color: #6f7f8f;
    font-size: 12px;
    font-weight: 600;
    margin-bottom: 8px;
    display: inline-block;
}

.box-cop .form-6 {
    display: flex;
    gap: 14px;
    align-items: flex-start;
}

.box-cop .form-control::placeholder {
    color: #aaa;
}

.box-cop .return {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.box-cop .return .td {
    font-weight: bold;
    font-size: 15px;
    color: #333
}

.box-cop .return .price {
    color: #6f7f8f;
    font-size: 14px;
    font-weight: 600
}

.box-cop .box-div {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.box-cop .label strong {
    font-size: 15px;
    color: #373f47
}

.box-cop .label span {
    display: block;
    font-size: 11px;
    color: #6f7f8f;
}

.box-cop .cal {
    display: flex;
    align-items: center;
    background: #f6f7f8;
    padding: 8px;
    border-radius: 50px
}

.box-cop .cal .tinh {
    display: inline-block;
    width: 24px;
    height: 24px;
    line-height: 22px;
    border-radius: 50%;
    cursor: pointer;
    text-align: center;
    background: #e4e7ea;
    color: #b6bec7;
    font-size: 27px;
}

.box-cop .cal .tinh.cong {
    background: var(--primary);
    color: #fff
}

.box-cop .cal .txtSoLuong {
    background: transparent;
    width: 32px;
    text-align: center;
    color: #333;
}

.box-cop .text-6 {
    font-size: 11px;
    color: #b6bec7;
}

.box-cop .box-div+.box-div {
    margin-top: 43px
}

.box-cop .text {
    color: #6f7f8f;
    font-size: 12px;
    font-weight: 600;
    display: inline-block;
}

.box-cop .boxs+.boxs {
    padding-top: 24px;
    margin-top: 22px;
    border-top: 1px solid #e4e7ea
}

.box-cop .boxs .text-6 {
    margin-top: 16px
}

.box-cop .refresh {
    display: flex;
    gap: 8px
}

.box-cop .btnRefresh {
    width: 35px;
    height: 35px;
    background: url(/Design/refresh.png) no-repeat;
    background-size: contain;
    border: none;
}

.box-cop .confirm .form-control {
    width: auto
}

.cop-mid .btn-cop {
    display: block;
    border-radius: 6px;
    box-shadow: 0 1px 2px 0 rgba(55,63,71,.05);
    padding: 12px 16px;
    font-size: 15px;
    background:var(--primary);border-color:var(--primary);
}
.cop-mid .btn-cop:hover{background:var(--primary-hover);border-color:var(--primary-hover);}
.price-box {
    background: #fff;
    overflow: hidden;
    box-shadow: 0 4px 8px 0 rgba(0,0,0,.11);
    border-radius: 8px;
}

.price-box .top {
    padding: 10px 16px 8px;
    background-color: #6f7f8f;
    border-radius: 8px 8px 0 0;
    color: #fff;
    display: flex;
    gap: 10px;
    align-items: center;
}

.price-box .top .icon {
    width: 24px;
    height: 24px;
    background: #fff;
    color: #373f47;
    font-size: 10px;
    flex-shrink: 0;
    border-radius: 50%;
    text-align: center;
    line-height: 20px;
}

.price-box .top .mt {
    line-height: 1.4;
}

.price-box .top strong {
    font-size: 11px;
    display: block;
}

.price-box .top span {
    display: block;
    font-size: 10px
}

.price-box .bot {
    margin: 16px;
    font-size: 12px;
    padding: .8em 1em;
    border-radius: 6px;
    background-color: #f6f7f8;
    color: #373f47
}

.price-box .bot .item {
    display: flex;
    justify-content: space-between;
    position: relative;
    padding-left: 10px;
}

.price-box .bot .item+.item {
    margin-top: 12px
}

.price-box .bot .item:after {
    content: "";
    position: absolute;
    width: 5px;
    height: 5px;
    display: block;
    background-color: #b6bec7;
    border-radius: 50%;
    top: .5em;
    left: 0;
}

.price-box .bot .item.i1:before {
    content: "";
    position: absolute;
    width: 1px;
    display: block;
    background-color: #b6bec7;
    top: .5em;
    bottom: -1.8em;
    left: 2px;
}

.price-box .bot span {
    font-weight: bold;
    color: #6f7f8f
}

.price-box.i2 {
    margin-top: 14px;
    padding: 11px 16px;
}

.price-box.i2 .price {
    display: flex;
    justify-content: space-between;
    font-size: 18px;
    font-weight: bold;
    color: #373f47
}

.price-box.i2 .price span {
    color: var(--bs-success)
}

/*configpage*/
.item .price strong {
    font-size: 16px;
}

.configpage {
    margin: 0;
    padding: 30px 0;
    background: #fff
}

.cfp-box {
    box-shadow: rgba(0, 15, 23, 0.3) 0px 1px 4px;
    border-radius: 5px;
}

.cfp-box .top {
    /* padding: 0.75rem 1.5rem 1rem; */
    /* border-bottom: 1px solid #c1c7cd; */
}

.cfp-choose {
    display: flex
}

.cfp-choose .form-control {
    height: 56px;
    background: url(/Design/ic-date.png) 12px center no-repeat;
    background-size: 16px auto;
    padding-left: 38px;
    color: #000;
}

.cfp-choose .txtdate {
    background: url(/Design/ic-date.png) 12px center no-repeat;
    background-size: 16px auto;
    border-radius: 12px 0 0 12px;
    padding-left: 38px;
    font-weight: bold;
    color: #333;
}

.cfp-choose .txtuser {
    width: 69px;
    flex-shrink: 0;
    border-left: 0;
    border-right: 0;
    background-image: url(/Design/ic-user.png);
    font-size: 14px;
    padding-right: 0;
}

.cfp-choose .txtbag {
    width: 81px;
    flex-shrink: 0;
    border-left: 0;
    background-image: url(/Design/ic-bags.png);
    background-size: auto 16px;
    padding-left: 50px;
    font-size: 14px;
    padding-right: 0;
    border-radius: 0 12px 12px 0
}

.cfp-box .text {
    color: #697077;
    font-weight: bold;
    margin-bottom: 25px;
    font-size: 14px;
}

.cfp-box .border-bottom {
    border-bottom: 1px solid #dde1e6
}

.cfp-box .dc {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.cfp-box .dc .address {
    position: relative;
    font-weight: bold;
    font-size: 14px;
}

.cfp-box .dc .address:before {
    content: "";
    position: absolute;
    width: 2px;
    height: 10px;
    background-color: rgb(23, 29, 33);
    margin: 0.0625rem 0px;
    left: 6px;
    top: 18px;
}

.cfp-box .dc .item {
    position: relative;
    padding-left: 20px;
}

.cfp-box .dc .item.i1 {
    margin-bottom: 10px;
}

.cfp-box .dc .item:before {
    content: "";
    position: absolute;
    width: 14px;
    height: 14px;
    background: url('/Design/ic-circle.png') no-repeat center;
    background-size: contain;
    left: 0;
    top: 3px;
}

.cfp-box .dc .item.i2:before {
    background-image: url('/Design/ic-point.png')
}

.cfp-box .dc .btn {
    color: var(--navy-blue);
    background: #F2F4F8;
    border: 0;
    border-radius: 50px;
    font-weight: bold;
    font-size: 15px;
    padding: 9px 16px;
}

.cfp-box .dc .btn:hover {
    background: var(--main);
    color: #fff
}

.cfp-rest {
    padding: 0.75rem 1.5rem 1rem;
    border-bottom: 1px solid #c1c7cd;
}

.cfp-rest .list-dc .item {
    display: flex;
    gap: 0.75rem;
}

.cfp-rest .list-dc .item+.item {
    margin-top: 0.75rem
}

.cfp-rest .list-dc .imgz {
    width: 100px;
}

.cfp-rest .list-dc .imgH {
    padding: 29%;
    border-radius: 5px;
}

.cfp-rest .list-dc .nd {
    /* line-height: 1.3; */
    margin-left: 10px;
    margin-right: auto;
}

.cfp-rest .list-dc .td {
    font-weight: bold;
    color: #373f47;
}

.cfp-rest .list-dc .gia {
    color: var(--bs-success)
}

.cfp-rest .list-dc .price {
    text-align: right
}

.cfp-ride {
    padding: 1.5rem
}

.cfp-ride .title {
}

.cfp-ride .list-car .item {
    display: flex;
    justify-content: space-between;
    /* gap: 10px; */
    margin-bottom: 8px;
}

.cfp-ride .list-car .imgz {
    width: 100px;
}

.cfp-ride .list-car .imgH {
    padding: 31%;
    border-radius: 5px;
}

.cfp-ride .list-car .nd {
    margin: auto;
    margin-left: 10px
}

.cfp-ride .list-car .td {
    margin-bottom: 0;
    color: #373f47;
}

.cfp-ride .list-car .mt .bag {
    color: #555;
    position: relative;
    padding-left: 17px;
    font-size: 13px;
    display: block;
    font-weight: 600
}

.cfp-ride .list-car .mt .bag:before {
    content: "";
    position: absolute;
    width: 12px;
    height: 12px;
    background: url('/Design/pax.svg') no-repeat;
    background-size: contain;
    left: 0;
    top: 4px;
}

.cfp-ride .list-car .mt .bag.i2:before {
    background-image: url('/Design/baggage.svg')
}

.cfp-ride .list-car .price {
    text-align: right
}

.cfp-ride .list-car .price .btn {
    border-color: var(--primary);
    border-radius: 5px;
    font-weight: 600;
    color: var(--primary);
    margin-top: 8px;
    padding: 4px .75rem;
    font-size: 14px;
}

.cfp-ride .list-car .price .btn:hover {
    background: var(--primary);
    color: #fff;
}

.cfp-ride .more {
    text-align: right;
    font-weight: bold;
    font-size: 15px;
    color: var(--navy-blue)
}

.cfp-ride .more a {
    cursor: pointer
}

.cfp-ride .more a:hover {
    color: var(--navy-light)
}

.cfp-ride .link-btn .btn {
    width: 100%;
    background-color: var(--primary);
    color: rgb(255, 255, 255);
    border: 0;
    font-size: 22px;
    font-weight: bold;
    padding: 15px 0;
    border-radius: 5px;
}

.cfp-ride .link-btn .btn:hover {
    background: var(--primary-hover)
}

.cfp-ride .link {
    display: flex;
    justify-content: space-between;
    font-weight: 800;
    color: #555;
    text-transform: uppercase;
}

.cfp-ride .link .total-price {
    color: #00b000
}

.cfp-ride .link .btn .total-price {
    color: #fff;
}

.cfp-ride .change-price {
    color: #444;
    font-size: 14px;
}

.list-rest .item {
    position: relative;
    border-radius: 12px;
    overflow: hidden
}

.list-rest .item+.item {
    margin-top: 16px
}

.list-rest .item .mt {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    height: 68px;
    transition: height 500ms
}

.list-rest .item:hover .mt {
    display: -webkit-box;
    -webkit-line-clamp: 8;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    height: 179px;
}

.list-rest .imgz {
    padding: 36%
}

.list-rest .nd {
    position: absolute;
    bottom: 0;
    background-image: linear-gradient(rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.8) 64.64%);
    padding: 1.5rem 1rem;
    color: #fff;
}

.list-rest .link {
    margin-bottom: 8px
}

.list-rest .link .btn {
    background: var(--navy-blue);
    border-radius: 5px;
    border: 0;
    /* border-color:var(--navy-blue); */
    font-size: 15px
}

.list-rest .link .btn:hover {
    background: var(--primary-hover)
}

.list-rest .link .btn.btn-remove {
    color: #fff;
    background: #333;
    /* border-color:#fff; */
}

.list-rest .link .btn.btn-remove:hover {
    background: var(--primary-hover)
}

.cfp-ck .top {
    padding: 1.25rem 2rem;
    background-color: var(--bg-light);
    color: var(--success);
    border-radius: 5px;
    margin-bottom: 0.5rem;
    display: flex;
    align-items: center;
    gap: 30px;
}

.cfp-ck .top strong {
    flex-shrink: 0;
    margin: 0;
    position: relative;
    padding-left: 32px;
}

.cfp-ck .top strong:before {
    content: "";
    position: absolute;
    width: 22px;
    height: 22px;
    background: url('/Design/ic-usd.png') no-repeat;
    background-size: contain;
    left: 0;
    top: 4px;
}

.cfp-ck .top span {
    font-size: 0.75rem;
    font-weight: bold;
}

.cfp-ck .bot {
    padding: 1.25rem 2rem;
    background-color: var(--bg-light);
    color: var(--success);
    border-radius: 5px;
    font-size: 0.75rem;
    font-weight: bold;
}

.cfp-ck .ds-ck .item {
    position: relative;
    padding-left: 24px;
}

.cfp-ck .ds-ck .item:before {
    content: "";
    position: absolute;
    width: 16px;
    height: 16px;
    background: url('/Design/ic-check.png') no-repeat;
    background-size: contain;
    left: 0;
    top: 0;
}

.cfp-step ul {
    display: flex;
    justify-content: space-between;
    position: relative
}

.cfp-step li {
    text-align: center;
    position: relative;
    /* flex: 1; */
}

.cfp-step ul:before {
    content: "";
    position: absolute;
    background-color: rgb(242, 244, 248);
    height: 2px;
    width: calc(100% - 80px);
    top: 12px;
    left: 40px;
    z-index: 0;
}

.cfp-step li strong {
    display: inline-flex;
    width: 1.5rem;
    height: 1.5rem;
    font-size: 0.75rem;
    font-weight: 700;
    background-color: rgb(242, 244, 248);
    color: #171d21;
    border-radius: 50%;
    align-items: center;
    justify-content: center;
    margin-bottom: 3px;
    position: relative;
    z-index: 1;
}

.cfp-step li span {
    font-size: 13px;
    display: block;
    font-weight: 600;
}

.cfp-step li.active {
    color: var(--success)
}

.cfp-step li.active strong {
    background-color: var(--success);
    color: #fff;
}
/* Transfer Detail */
.td-action-row { display:flex; flex-wrap:wrap; gap:10px; }
.td-action-row .btn { flex:1; min-width:140px; border-radius:8px;}
.td-action-row .btn-primary{background:var(--success);border-color:var(--success)}.td-action-row .btn-primary:hover{background:var(--navy-blue);border-color:var(--navy-blue)}
.td-action-row .btn-warning{background:var(--primary);border-color:var(--primary);color:#fff;}.td-action-row .btn-warning:hover{background:var(--primary-hover);border-color:var(--primary-hover)}
/* sidebar: desktop only, mobile footer: mobile only */
@media (max-width: 991px) { .td-sidebar-desktop { display: none !important; } }
@media (min-width: 992px) { .td-mob-footer { display: none !important; } }

/* Mobile sticky footer */
.td-mob-footer {
    position: fixed;
    bottom: 0; left: 0; right: 0;
    background: #fff;
    border-top: 2px solid #e0e0e0;
    z-index: 99999;
    padding: 10px 14px 12px;
    box-shadow: 0 -2px 12px rgba(0,0,0,0.12);
}
.td-mob-info { margin-bottom: 8px; }
.td-mob-title { font-size: 13px; font-weight: 700; color: #222; line-height: 1.3; margin-bottom: 3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.td-mob-summary { font-size: 11px; color: #666; line-height: 1.4; margin-bottom: 3px; }
.td-mob-total { font-size: 13px; color: #222; }
.td-mob-price { color: var(--primary); font-weight: 700; font-size: 15px; }
.td-mob-btns { display: flex; gap: 10px; }
.td-mob-btn-cart {
    flex: 1; padding: 11px 8px; border: none; border-radius: 6px;
    background: var(--success); color: #fff; font-size: 14px; font-weight: 700; cursor: pointer;
}
.td-mob-btn-book {
    flex: 1; padding: 11px 8px; border: none; border-radius: 6px;
    background: var(--primary); color: #fff; font-size: 14px; font-weight: 700; cursor: pointer;
}
.td-mob-btn-cart:active, .td-mob-btn-book:active { opacity: 0.85; }

/* space so last form element is not hidden behind sticky footer on mobile */
@media (max-width: 991px) {
    .checkpage { padding-bottom: 130px; }
}

.cart-page { padding: 40px 0; }
.cart-title { background:var(--primary); color:#fff; padding:14px 20px; border-radius:6px 6px 0 0; font-size:18px; font-weight:700; margin-bottom:0; }
.cart-item { border:1px solid #e8e8e8; border-top:0; padding:20px; display:flex; flex-wrap:wrap; gap:16px; background:#fff; }
.cart-item-img { width:90px; height:70px; object-fit:cover; border-radius:6px; flex-shrink:0; }
.cart-item-body { flex:1; min-width:200px; }
.cart-item-title { font-weight:700; font-size:15px; color:#222; margin-bottom:4px; }
.cart-item-meta { font-size:13px; color:#666; margin-bottom:2px; }
.cart-item-price { font-size:15px; font-weight:700; color:var(--primary); margin-top:6px; }
.cart-item-remove { display:flex; align-items:flex-start; }
.cart-summary {
    background: #fff;
    border: 1px solid #e8e8e8;
    border-radius: 8px;
    padding: 20px 24px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.08);
    position: sticky;
    top: 20px;
}
.cart-summary-count {
    font-size: 14px;
    color: #666;
    font-weight: 600;
    padding-bottom: 12px;
    margin-bottom: 14px;
    border-bottom: 1px solid #f0f0f0;
}
.cart-summary-price-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}
.cart-summary-price-block { flex: 1; min-width: 0; }
.cart-total { font-size: 26px; font-weight: 700; color: var(--primary); line-height: 1.2; }
.cart-summary-vnd { font-size: 12px; color: #999; margin-top: 5px; }
.cart-summary-btn {
    flex-shrink: 0;
    display: inline-block;
    background: var(--success);
    color: #fff;
    border: none;
    border-radius: 8px;
    padding: 11px 22px;
    font-size: 15px;
    font-weight: 700;
    white-space: nowrap;
    text-decoration: none;
    cursor: pointer;
}
.cart-summary-btn:hover, .cart-summary-btn:focus { background: var(--navy-blue); color: #fff; text-decoration: none; }
.cart-empty { text-align:center; padding:60px 20px; color:#888; font-size:16px; }
@media (max-width: 991px) {
    .cart-summary {
        position: fixed;
        bottom: 0; left: 0; right: 0; top: auto;
        border-radius: 0;
        border-left: none; border-right: none; border-bottom: none;
        border-top: 2px solid #e8e8e8;
        box-shadow: 0 -3px 16px rgba(0,0,0,0.12);
        z-index: 9999;
        padding: 10px 16px 14px;
    }
    .cart-summary-count { border-bottom: none; margin-bottom: 4px; padding-bottom: 0; font-size: 12px; }
    .cart-total { font-size: 20px; }
    .cart-summary-vnd { display: none; }
    .cart-summary-btn { padding: 9px 16px; font-size: 14px; }
    .cart-page { padding-bottom: 100px !important; }
}
.bfs-price-table { width:100%; font-size:12px; border-collapse:collapse; margin-top:6px; }
.bfs-price-table td { padding:3px 6px; }
.bfs-option-row { font-weight:700; background:#f5f5f5; }
.bfs-col-green { color:#1a7a4a; }
.bfs-col-orange { color:#e67e22; }
.bfs-total-row td { border-top:1px solid #ddd; font-weight:700; }

.booking-cart-item { border-bottom:1px solid #e8e8e8; padding-bottom:16px; margin-top:15px ; display:flex; flex-wrap:wrap; gap:14px; }
.booking-cart-item:first-child { margin-top:0; }
.booking-cart-img { width:80px; height:60px; object-fit:cover; border-radius:5px; flex-shrink:0; }
.booking-cart-body { flex:1; min-width:180px; }
.booking-cart-title { font-weight:700; font-size:14px; color:#222; margin-bottom:3px; }
.booking-cart-meta { font-size:12px; color:#666; margin-bottom:2px; }
.booking-cart-price { font-size:14px; font-weight:700; color:var(--primary); margin-top:4px; }
.bfs-price-table { width:100%; font-size:12px; border-collapse:collapse; margin-top:4px; }
.bfs-price-table td { padding:2px 5px; }
.bfs-option-row { font-weight:700; background:#f5f5f5; }
.bfs-col-green { color:#1a7a4a; }
.bfs-total-row td { border-top:1px solid #ddd; font-weight:700; }

/* === Accessibility & UX fixes === */

/* Font size — minimum readable size */
.cop-top .top { font-size: 12px; }
.box-cop .form-label { font-size: 13px; }
.box-cop .label span { font-size: 13px; }
.box-cop .text-6 { font-size: 13px; }
.box-cop .text { font-size: 13px; }
.price-box .top .icon { font-size: 12px; }
.price-box .top strong { font-size: 13px; }
.price-box .top span { font-size: 12px; }
.price-box .bot { font-size: 13px; }
.td-mob-summary { font-size: 13px; }
.booking-cart-meta { font-size: 13px; }
.bfs-price-table { font-size: 13px; }
.bfs-price-table td { padding: 4px 6px; }

/* Color contrast */
.box-cop .form-label { color: #4d5f6d; }
.box-cop .label span { color: #4d5f6d; }
.box-cop .text-6 { color: #767676; }
.box-cop .text { color: #4d5f6d; }
.cart-summary-vnd { color: #767676; }
.cart-empty { color: #666; }
.bfs-col-orange { color: #c06a0a; }

/* Touch targets — passenger counter buttons (24×24 → 44×44) */
.box-cop .cal .tinh {
    width: 44px;
    height: 44px;
    line-height: 42px;
    font-size: 28px;
}

/* Touch targets — step progress dots (12×12 → pseudo tap area) */
.cop-top .circle { position: relative; }
.cop-top .circle::before {
    content: '';
    position: absolute;
    top: -16px; right: -12px; bottom: -16px; left: -12px;
}

/* cart-summary-btn hover: white text on #0099ff = 2.9:1 (fail) → use navy */
.cart-summary-btn:hover,
.cart-summary-btn:focus { background: var(--navy-light); color: #fff; text-decoration: none; }

/* Mobile cart summary count */
@media (max-width: 991px) {
    .cart-summary-count { font-size: 14px; }
}