/* ==========================================================================
   Cart, Checkout, Success & Mini-Cart (offcanvas) redesign.
   Design language: modern OTA style — airy spacing, soft elevation, minimal
   internal borders, pill accents. Reuses existing --primary/--warning brand
   colors. No coupon UI, no payment-method UI (this project doesn't have either).
   ========================================================================== */

.cc_breadcrumb {font-size: 13px; margin-bottom: 20px; color: #6b6b6b;}
.cc_breadcrumb a {color: #6b6b6b; text-decoration: none;}
.cc_breadcrumb a:hover {color: var(--primary);}
.cc_breadcrumb .sep {margin: 0 6px; color: #c8c8c8;}
.cc_breadcrumb .current {color: #1a1a1a; font-weight: 600;}

/* Cart item card */
.cc_item_card {border: 1px solid #f0f0f0; border-radius: 16px; box-shadow: 0 10px 26px rgba(20,20,20,.05); overflow: hidden; margin-bottom: 20px; background: #fff;}
.cc_item_card .cc_item_img {width: 100%; height: 100%; min-height: 160px; object-fit: cover;}
.cc_item_type_badge {display: inline-block; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; padding: 4px 12px; border-radius: 20px; margin-bottom: 10px;}
.cc_item_type_badge.tour {background: #E6F5F4; color: #0E7C7B;}
.cc_item_type_badge.attraction {background: #FFF2E3; color: #B5691A;}
.cc_item_title {font-size: 18px; font-weight: 700; margin-bottom: 8px; color: #1a1a1a;}
.cc_item_meta {list-style: none; margin: 0; padding: 0; font-size: 13.5px; color: #555;}
.cc_item_meta li {display: flex; align-items: center; gap: 8px; margin-bottom: 7px;}
.cc_item_meta li i {color: var(--warning); width: 16px; text-align: center;}
.cc_item_addons {font-size: 12.5px; margin-top: 8px; color: #555;}
.cc_item_price_col {display: flex; flex-direction: column; align-items: flex-end; justify-content: space-between; height: 100%;}
.cc_item_price del {color: #999; font-size: 12.5px; display: block;}
.cc_item_price .cur_price {font-size: 20px; font-weight: 800; color: #1a1a1a;}
.cc_item_price .save_note {font-size: 11.5px; color: #1E9E5A; display: block;}
.cc_remove_btn {border: 1px solid #f1c3c0; color: #E0342A; background: #fff; font-size: 12.5px; border-radius: 8px; padding: 6px 14px; transition: all .15s ease;}
.cc_remove_btn:hover {background: #FFF3F2;}

/* Empty cart */
.cc_empty {text-align: center; padding: 70px 20px; border: 1px dashed #e2e2e2; border-radius: 18px;}
.cc_empty i {font-size: 48px; color: #ddd; margin-bottom: 16px; display: block;}

/* Order summary sidebar */
.cc_summary_card {border: 1px solid #f0f0f0; border-radius: 18px; box-shadow: 0 16px 40px rgba(20,20,20,.06); background: #fff; padding: 26px;}
.cc_summary_card h4 {font-size: 18px; font-weight: 800; margin-bottom: 0; color: #1a1a1a;}
.cc_summary_items {list-style: none; margin: 16px 0; padding: 0; max-height: 260px; overflow-y: auto;}
.cc_summary_items li {display: flex; justify-content: space-between; gap: 10px; font-size: 12.5px; padding: 10px 0; border-bottom: 1px solid #f2f2f2;}
.cc_summary_items li:last-child {border-bottom: 0;}
.cc_summary_items .item_name {font-weight: 600; color: #333; display: block;}
.cc_summary_items .item_sub {color: #999; font-size: 11px;}
.cc_summary_line {display: flex; justify-content: space-between; font-size: 14px; margin-bottom: 12px; color: #444;}
.cc_summary_total {display: flex; justify-content: space-between; align-items: center; padding-top: 16px; border-top: 1px solid #f0f0f0; margin-top: 8px;}
.cc_summary_total strong {font-size: 14.5px; color: #222;}
.cc_summary_total .amount {font-size: 23px; font-weight: 800; color: #1a1a1a;}
.cc_add_more {font-size: 12.5px; font-weight: 600; color: var(--warning); text-decoration: underline;}
.cc_checkout_btn {width: 100%; margin-top: 18px; padding: 14px; font-weight: 700; font-size: 16px; border-radius: 12px; box-shadow: 0 8px 18px rgba(206,142,49,.22);}
.cc_trust_row {display: flex; justify-content: center; gap: 22px; margin-top: 16px; font-size: 11.5px; color: #777;}
.cc_trust_row .item {display: flex; align-items: center; gap: 5px;}
.cc_trust_row .item i {color: #1E9E5A;}

@media (min-width: 992px) {
  .cc_summary_card.is_sticky {position: sticky; top: 100px;}
}

/* Checkout traveler-info form */
.cc_form_card {border: 1px solid #f0f0f0; border-radius: 18px; box-shadow: 0 10px 26px rgba(20,20,20,.05); background: #fff; padding: 30px;}
.cc_form_card h3 {font-size: 21px; font-weight: 800; margin-bottom: 4px; color: #1a1a1a;}
.cc_form_card .form-label {font-weight: 700; font-size: 13.5px; color: #222;}
.cc_form_card .form-control {border-radius: 10px; padding: 11px 14px; border-color: #e5e5e5;}
.cc_disclaimer {font-size: 12px; color: #999; margin-top: 16px;}
.cc_back_link {font-size: 13px; color: #555; display: inline-flex; align-items: center; gap: 6px; margin-bottom: 18px;}
.cc_back_link:hover {color: var(--primary);}

/* ==========================================================================
   Mini-cart (offcanvas) drawer
   ========================================================================== */
.oc_cart {width: 420px !important; max-width: 92vw;}
.oc_cart_header {padding: 20px 22px; border-bottom: 1px solid #f0f0f0;}
.oc_cart_header .offcanvas-title {font-size: 17px; font-weight: 800; color: #1a1a1a;}
.oc_count_badge {display: inline-flex; align-items: center; justify-content: center; min-width: 20px; height: 20px; padding: 0 6px; background: var(--warning); color: #fff; font-size: 11px; font-weight: 700; border-radius: 20px; margin-left: 6px; vertical-align: middle;}

.oc_cart_items {flex: 1 1 auto; overflow-y: auto; padding: 6px 22px;}
.oc_cart_item {display: flex; gap: 14px; padding: 16px 0; border-bottom: 1px solid #f2f2f2;}
.oc_cart_item:last-child {border-bottom: 0;}
.oc_item_thumb {flex: 0 0 auto; width: 76px; height: 76px; border-radius: 12px; overflow: hidden;}
.oc_item_thumb img {width: 100%; height: 100%; object-fit: cover;}
.oc_item_thumb_placeholder {width: 100%; height: 100%; background: #f5f5f5; display: flex; align-items: center; justify-content: center; color: #ccc; font-size: 20px;}
.oc_item_body {flex: 1 1 auto; min-width: 0;}
.oc_item_top {display: flex; justify-content: space-between; align-items: flex-start; gap: 8px;}
.oc_item_top h6 {font-size: 14px; font-weight: 700; margin: 0; color: #1a1a1a; line-height: 1.3;}
.oc_remove_btn {border: 0; background: transparent; color: #bbb; padding: 0; font-size: 15px; flex: 0 0 auto;}
.oc_remove_btn:hover {color: #E0342A;}
.oc_item_meta {list-style: none; margin: 6px 0 0; padding: 0; font-size: 12px; color: #777;}
.oc_item_meta li {display: flex; align-items: center; gap: 6px; margin-bottom: 3px;}
.oc_item_meta li i {color: var(--warning); font-size: 11px;}
.oc_item_addon_note {font-size: 11.5px; color: #1E9E5A; margin-top: 4px;}
.oc_item_addon_note i {margin-right: 4px;}
.oc_item_price {margin-top: 8px;}
.oc_item_price del {color: #aaa; font-size: 11.5px; margin-right: 6px;}
.oc_item_price strong {font-size: 15px; color: #1a1a1a;}

.oc_cart_footer {flex: 0 0 auto; padding: 18px 22px 22px; border-top: 1px solid #f0f0f0; background: #fff;}
.oc_add_more_link {display: block; text-align: center; font-size: 12.5px; font-weight: 600; color: #777; margin-top: 12px;}
.oc_add_more_link:hover {color: var(--primary);}

/* ==========================================================================
   Success / confirmation page
   ========================================================================== */
.cc_success_wrap {text-align: center; padding: 50px 20px 10px;}
.cc_success_icon {width: 84px; height: 84px; border-radius: 50%; border: 2px solid #1E9E5A; display: flex; align-items: center; justify-content: center; margin: 0 auto 24px;}
.cc_success_icon i {font-size: 40px; color: #1E9E5A;}
.cc_success_wrap h1 {font-size: 28px; font-weight: 800; margin-bottom: 12px; color: #1a1a1a;}
.cc_success_wrap .cc_success_sub {color: #666; font-size: 14.5px; max-width: 520px; margin: 0 auto 22px; line-height: 1.6;}
.cc_ref_pill {display: inline-flex; align-items: center; gap: 8px; background: #E6F5F4; color: #0E7C7B; padding: 8px 18px; border-radius: 30px; font-size: 13px; font-weight: 600; margin-bottom: 34px;}
.cc_ref_pill strong {font-size: 14px; letter-spacing: .02em;}

.cc_success_card {border: 1px solid #f0f0f0; border-radius: 18px; box-shadow: 0 16px 40px rgba(20,20,20,.06); background: #fff; padding: 24px; max-width: 620px; margin: 0 auto 30px; text-align: left;}
.cc_success_card .cc_success_item_row {display: flex; align-items: center; gap: 14px; padding-bottom: 18px; margin-bottom: 18px; border-bottom: 1px solid #f2f2f2;}
.cc_success_card .cc_success_item_row img {width: 64px; height: 64px; border-radius: 10px; object-fit: cover; flex: 0 0 auto;}
.cc_success_card .cc_success_item_row h6 {font-size: 15.5px; font-weight: 700; margin-bottom: 2px; color: #1a1a1a;}
.cc_success_card .cc_success_item_row .muted {font-size: 12.5px; color: #888;}
.cc_success_stats {display: flex; justify-content: space-between; text-align: center; gap: 10px;}
.cc_success_stats .stat {flex: 1 1 0;}
.cc_success_stats .stat .stat_label {font-size: 11.5px; color: #999; margin-bottom: 4px; text-transform: uppercase; letter-spacing: .04em;}
.cc_success_stats .stat .stat_value {font-size: 15px; font-weight: 700; color: #1a1a1a;}
.cc_success_actions {display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; margin-bottom: 16px;}
.cc_success_actions .btn {border-radius: 10px; padding: 12px 26px; font-weight: 700;}
.cc_success_disclaimer {font-size: 12px; color: #999; max-width: 480px; margin: 0 auto;}
