/* =============================================================
   Chauffeur Booking — Public CSS  (Design v2 — matches screenshot)
   ============================================================= */
   @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap');

   /* ---- Base ---- */
   #cb-booking-wrapper,
   #cb-booking-wrapper * { box-sizing: border-box; margin: 0; padding: 0; font-family: 'Inter', sans-serif; }
   #cb-booking-wrapper { color: #1a1a1a; background: #fff; }
   
   /* ---- Page background ---- */
   /* #cb-booking-wrapper { background: #f9f9f9; } */
   .cb-form-col { display: flex; flex-direction: column; }
   
   /* ============================================================
      STEP PROGRESS BAR
      ============================================================ */
   /* .cb-step-bar {
     background: #fff;
     padding: 32px 24px 20px;
   } */
   .cb-steps-row {
     display: flex;
     align-items: flex-start;
     justify-content: center;
     /* max-width: 680px; */
     margin: 0 auto;
   }
   .cb-step-item {
     display: flex;
     flex-direction: column;
     align-items: center;
     gap: 8px;
     /* min-width: 90px; */
   }
   #cb-booking-wrapper .cb-step-circle {
     width: 56px !important;
     height: 56px !important;
     border-radius: 50% !important;
     background: #d9d9d9 !important;
     color: #000 !important;
     font-size: 32px !important;
     font-weight: 700 !important;
     display: flex !important;
     align-items: center !important;
     justify-content: center !important;
     position: relative;
     z-index: 1;
     transition: background 0.3s, color 0.3s, box-shadow 0.3s;
     border: none !important;
     box-shadow: none !important;
     text-decoration: none !important;
     padding: 0 !important;
     margin: 0 !important;
       line-height: 44px !important;
   }
   #cb-booking-wrapper .cb-step-item.active .cb-step-circle {
     background: #ff0000 !important;
     color: #fff !important;
     /* box-shadow: 0 4px 16px rgba(192, 57, 43, 0.35) !important; */
   }
   #cb-booking-wrapper .cb-step-item.done .cb-step-circle {
     background: #ff0000 !important;
     color: #fff !important;
   }
   /* .cb-step-label {
     font-size: 12px;
     font-weight: 500;
     color: #aaa;
     text-align: center;
     white-space: nowrap;
     transition: color 0.3s, font-weight 0.3s;
   } */
   .cb-step-label {
       font-size: 24px;
       font-weight: 400;
       color: #111827;
       text-align: center;
       line-height: 130%;
       font-family: 'Poppins' !important;
   }
   .cb-step-item.active .cb-step-label { text-decoration: underline; text-decoration-color: #DA1616;}
   .cb-step-item.done .cb-step-label { color: #888; }
   .cb-step-connector {
       flex: 1;
       height: 1px;
       background: #000;
       min-width: 41px;
       max-width: 160px;
       transition: background 0.3s;
       position: relative;
       top: 25px;
   }
   .cb-step-connector.done { background: #ff0000; }
   
   /* ============================================================
      MAIN TWO-COLUMN LAYOUT
      ============================================================ */
   .cb-booking-grid {
     display: grid;
     grid-template-columns: 1fr 330px;
     gap: 100px;
     /* max-width: 1100px; 
     margin: 0 auto;*/
     margin-top: 60px !important;
     padding: 16px 20px 60px;
     align-items: start;
   }
   #cb-vehicle-section {
       background: #DA16161A;
   }
   #cb-contact-section h3,
   #cb-vehicle-section h3,
   #cb-confirm-section h3 {
       margin-bottom: 43px;
   }
   /* ============================================================
      FORM SECTIONS  (salmon / light-pink cards)
      ============================================================ */
   .cb-form-section {
     background: #DA16160D;
     border-radius: 20px;
     padding: 20px !important;
     margin-bottom: 16px !important;
   }
   .cb-section-heading {
     font-size: 24px;
     font-weight: 500;
     color: #111827;
     font-family: 'Poppins' !important;
     line-height: 130%;
   }
   
   /* ============================================================
      FORM FIELDS
      ============================================================ */
   .cb-field-grid { 
     display: grid;
     gap: 18px 40px;
     margin-bottom: 18px !important; 
   }
   .cb-col-4 { grid-template-columns: repeat(2, 1fr); margin: 43px 0 !important;}
   .cb-col-2 { grid-template-columns: 1fr 1fr; }
   .cb-col-1 { grid-template-columns: 1fr; }
   .cb-form-group { display: flex; flex-direction: column; gap: 7px; }
   .cb-form-group label, .cb-trip-label {
     font-size: 16px;
     font-weight: 600;
     line-height: 25px;
     color: #111827;
   }
   .cb-input-wrap { position: relative; }
   .cb-input {
     width: 100% !important;
     height: 50px;
     padding: 10px !important;
     background: transparent !important;
     border: 1.5px solid #111827 !important;
     border-radius: 5px !important;
     font-size: 16px;
     color: #111827;
     font-weight: 400;
     font-family: 'Inter', sans-serif;
     transition: border-color 0.2s, box-shadow 0.2s;
     -webkit-appearance: none;
   }
   .cb-input:focus {
     outline: none;
     border-color: #c0392b;
     box-shadow: none;
   }
   .cb-input::placeholder { 
     font-size: 16px;
     color: #111827;
     font-weight: 400; 
   }
   .cb-input-icon {
     position: absolute;
     right: 12px;
     top: 50%;
     transform: translateY(-50%);
     pointer-events: none;
     display: flex;
     align-items: center;
     color: #bbb;
   }
   .cb-input-icon svg { width: 16px; height: 16px; }
   .cb-textarea {
     height: 90px;
     padding-top: 11px;
     resize: none;
   }
   select.cb-input { cursor: pointer; padding-right: 38px; }
   
   /* ============================================================
      TRIP TYPE TOGGLE  (use cb-active to avoid WP theme conflicts)
      ============================================================ */
   /* .cb-trip-label { font-size: 12.5px; font-weight: 600; color: #555; margin-bottom: 8px; } */
   .cb-trip-type-row { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
   #cb-booking-wrapper .cb-trip-btn {
     height: 50px !important;
     border: 1px solid #111827 !important;
     border-radius: 5px !important;
     background: transparent !important;
     color: #da1919 !important;
     font-size: 16px !important;
     font-weight: 400 !important;
     font-family: 'Inter', sans-serif !important;
     cursor: pointer;
     transition: background 0.2s, color 0.2s;
     box-shadow: none !important;
     text-transform: none !important;
     letter-spacing: normal !important;
     padding: 0px !important;
     line-height: 46px !important;
     display: block;
     text-align: center;
     width: 100%;
   }
   #cb-booking-wrapper .cb-trip-btn.cb-active {
     background: #DA16161A !important;
     border-color: #da1616 !important;
   }
   #cb-booking-wrapper .cb-trip-btn:not(.cb-active):hover {
     background: #fff5f5 !important;
   }
   
   /* ============================================================
      VEHICLE CARDS
      ============================================================ */
   .cb-vehicles-grid {
     display: grid;
     grid-template-columns: repeat(4, 1fr);
     gap: 43px;
   }
   .cb-vehicle-card {
     background: #f4f4f4;
     border: 1px solid #0000001A;
     border-radius: 10px;
     padding: 20px 22px !important;
     cursor: pointer;
     text-align: center;
     position: relative;
     transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
   }
   .cb-vehicle-card:hover {
     border-color: #e8aaaa;
     /* transform: translateY(-2px);
     box-shadow: 0 6px 20px rgba(0,0,0,0.08); */
   }
   .cb-vehicle-card.selected {
     border-color: #c0392b;
     box-shadow: 0 0 0 3px rgba(192,57,43,0.12);
   }
   .cb-check-badge {
     display: none;
     position: absolute;
     top: 8px; right: 8px;
     width: 22px; height: 22px;
     background: #c0392b;
     color: #fff;
     border-radius: 50%;
     font-size: 11px;
     line-height: 22px;
     text-align: center;
     font-weight: 700;
   }
   .cb-vehicle-card.selected .cb-check-badge { display: block; }
   .cb-vehicle-img {
     width: 100%;
     height: 90px;
     object-fit: contain;
     margin-bottom: 8px;
   }
   .cb-vehicle-no-img {
     width: 100%;
     height: 90px;
     display: flex;
     align-items: center;
     justify-content: center;
     font-size: 38px;
     margin-bottom: 8px;
     background: #f8f8f8;
     border-radius: 6px;
   }
   .cb-vehicle-name {
     font-size: 24px;
     font-weight: 400;
     color: #111827;
     font-family: 'Poppins' !important;
     margin-top: 23px  !important;
   }
   .cb-vehicle-specs {
     display: flex;
     justify-content: center;
     gap: 10px;
     font-size: 16px;
     font-weight: 400;
     color: #000;
     line-height: 130%;
     margin: 3px 0 8px 0 !important;
   }
   .cb-vehicle-specs span { display: flex; align-items: center; gap: 3px; }
   .cb-vehicle-price {
     font-size: 24px;
     font-weight: 500;
     color: #111827;
     margin-bottom: 7px !important;
   }
   .cb-vehicle-from { 
     font-size: 12px;
     font-weight: 400;
     color: #000; 
   }
   .cb-vehicles-loading { text-align: center; padding: 30px 0; color: #aaa; }
   .cb-spinner {
     width: 30px; height: 30px;
     border: 3px solid #eee;
     border-top-color: #c0392b;
     border-radius: 50%;
     animation: cbSpin 0.7s linear infinite;
     margin: 0 auto 10px;
   }
   @keyframes cbSpin { to { transform: rotate(360deg); } }
   
   /* ============================================================
      SUBMIT / ACTION AREA
      ============================================================ */
   .cb-action-row {
     display: flex;
     margin-top: 10px !important;
     justify-content: space-between !important;
     padding-top: 25px !important;
     border-top: 1px solid rgba(0, 0, 0, 0.1);
   }
   .cb-btn-submit {
     background: #DA1616 !important;
     color: #fff !important;
     border: none !important;
     border-radius: 5px !important;
     padding: 12px 18px !important;
     font-size: 16px !important;
     font-weight: 500 !important;
     font-family: 'Inter', sans-serif !important;
     cursor: pointer;
     transition: background 0.2s, transform 0.15s;
     display: flex;
     align-items: center;
     gap: 8px;
   }
   .cb-btn-submit:hover { background: #DA1616; }
   .cb-btn-submit:disabled { opacity: 0.6; cursor: not-allowed; transform: none; }
   
   /* ============================================================
      CONFIRMATION TABLE (Step 4)
      ============================================================ */
   .cb-confirm-heading { font-size: 16px; font-weight: 700; margin-bottom: 18px; color: #1a1a1a; }
   .cb-confirm-table { width: 100%; border-collapse: collapse; }
   .cb-confirm-table th, .cb-confirm-table td { 
     color: #111827;
     font-weight: 400;
     text-align: left;
     font-size: 18px;
     padding: 10px !important; 
   }
   .cb-confirm-table th {font-weight: 700; }
   /* .cb-confirm-table td { color: #1a1a1a; font-weight: 600; } */
   .cb-confirm-table tbody>tr:nth-child(odd)>td, 
   .cb-confirm-table tbody>tr:nth-child(odd)>th{
     background: transparent !important;
   }
   .cb-confirm-fare-val { font-size: 22px; color: #c0392b; font-weight: 800; }
   #cb-back-btn{
     background: #f4f4f4;
     color: #111827;
     border: 1px solid rgba(0, 0, 0, 0.1);
     border-radius: 5px;
     padding: 12px 18px;
     font-size: 16px;
     font-weight: 500;
     font-family: Inter, sans-serif;
     cursor: pointer;
   }
   /* ============================================================
      SUCCESS CARD
      ============================================================ */
   .cb-success-wrap { 
     display: flex;
     align-items: center;
     justify-content: center;
     flex-direction: column; 
   }
   .cb-success-icon-wrap {
     width: 60px;
     height: 60px;
     background: green;
     border-radius: 50%;
     display: flex;
     align-items: center;
     justify-content: center;
   }
   .cb-success-icon-wrap svg { width: 36px; height: 36px; stroke: #fff; fill: none; stroke-width: 3; }
   .cb-success-wrap h2 { 
     font-size: 24px;
     font-weight: 700;
     margin: 10px 0 10px 0 !important; 
   }
   .cb-success-ref { 
     font-size: 18px;
     font-weight: 500;
     text-align: center;
     color: #da1616; margin-bottom: 10px; 
   }
   .cb-success-note { 
     font-size: 14px;
     color: #111827;
     line-height: 1.6; 
     text-align: center;
   }
   .cb-error-msg {
     background: #fff0f0;
     border: 1px solid #f5c6c6;
     border-radius: 7px;
     padding: 11px 14px;
     color: #c0392b;
     font-size: 13px;
     margin-bottom: 14px;
   }
   
   /* ============================================================
      SIDEBAR — TRIP SUMMARY
      ============================================================ */
   .cb-sidebar-col { position: sticky; top: 90px; }
   .cb-trip-summary-card {
     background: #000;
     border-radius: 20px;
     padding: 20px 50px !important;
     margin-bottom: 23px !important;
     color: #fff;
   }
   .cb-summary-heading {
     font-size: 24px;
     font-weight: 500;
     color: #fff;
     font-family: 'Poppins' !important; 
   }
   .cb-summary-rows { 
     display: flex;
     flex-direction: column;
     gap: 27px;
     margin: 35px 0 !important; 
   }
   .cb-summary-row {
     display: flex;
     align-items: flex-start;
     gap: 5px;
     padding-bottom: 20px !important;
     border-bottom: 1px dashed #6B7280;
   }
   /* .cb-sum-icon {
     width: 28px; height: 28px;
     flex-shrink: 0;
     margin-top: 1px;
   } */
   .cb-sum-icon svg {
     width: 22px;
     height: 22px;
     stroke: #fff;
     fill: none;
     stroke-width: 1px; 
   }
   .cb-sum-texts { display: flex; flex-direction: column; }
   .cb-sum-label { 
     font-size: 16px;
     color: #fff;
     font-weight: 400;
     text-transform: capitalize;
   }
   .cb-sum-value { 
     font-size: 18px;
     color: #fff;
     font-weight: 600; 
     }
   .cb-sum-divider { border: none; border-top: 1px solid rgba(255,255,255,0.1); margin: 14px 0; display: none; }
   .cb-estimated-label { font-size: 20px;
     color: #fff;
     font-weight: 500;
     font-family: 'Poppins' !important;
     margin-bottom: 4px !important; 
   }
   .cb-estimated-fare { font-size: 30px; font-weight: 800; color: #fff; margin-bottom: 6px; }
   .cb-fare-note { 
     font-size: 16px;
     color: #fff;
     line-height: 25px;
     font-weight: 400;
     margin: 11px 0 35px 0 !important; 
   }
   .cb-summary-continue-btn {
     display: block;
     width: 100%;
     padding: 12px 18px !important;
     background: #DA1616;
     color: #fff;
     border: none;
     border-radius: 5px !important;
     font-size: 16px !important;
     font-weight: 600 !important;
     font-family: 'Inter', sans-serif !important;
     line-height: 120%;
     cursor: pointer;
     transition: background 0.2s;
     text-align: center;
   }
   .cb-summary-continue-btn:hover,
   .cb-summary-continue-btn:focus { 
     background: #fff !important;
     color: #da1616 !important;
     border: 1px solid #fff !important; 
   }
   
   /* ============================================================
      WHY CHOOSE US CARD
      ============================================================ */
   .cb-why-card {
     background: #0000000F;
     border-radius: 20px;
     padding: 12px 20px !important;
   }
   .cb-why-heading { 
     font-size: 20px;
     font-weight: 600;
     color: #111827;
     line-height: 130%; 
   }
   .cb-why-item-list {
     margin: 21px 0 48px 0 !important;
     gap: 24px;
     display: flex;
     flex-direction: column;
   }
   .cb-why-item { display: flex; align-items: flex-start; gap: 11px; margin-bottom: 14px; }
   .cb-why-icon-wrap {
     width: 40px;
     min-width: 40px;
     height: 40px;
     background: transparent;
     border: 1px solid #DA1616;
     border-radius: 50%;
     display: flex;
     align-items: center;
     justify-content: center;
   }
   .cb-why-icon-wrap svg { 
     width: 18px;
     height: 18px;
     stroke: #da1616;
     fill: #da1616;
     stroke-width: 1px; 
   }
   .cb-why-item-title { font-size: 18px; font-weight: 500; color: #111827; margin-bottom: 2px; }
   .cb-why-item-sub {
     font-size: 14px;
     color: #111827;
     font-weight: 400;
     line-height: 160%; 
   }
   /* .cb-we-accept { border-top: 1px solid #f0e8e8; padding-top: 14px; margin-top: 4px; } */
   .cb-we-accept-label { 
     font-size: 20px;
     font-weight: 600;
     color: #111827;
     margin-bottom: 20px !important; 
   }
   .cb-pay-icons { display: flex; gap: 10px; align-items: center; }
   .cb-pay-img {
     height: 28px;
     width: auto;
     object-fit: contain;
     border-radius: 4px;
   }
   
   /* ============================================================
      RESPONSIVE
      ============================================================ */
   @media (max-width: 960px) {
     .cb-booking-grid { grid-template-columns: 1fr; }
     .cb-sidebar-col { position: static; }
     .cb-vehicles-grid { grid-template-columns: repeat(3, 1fr); }
   }
   @media (max-width: 680px) {
      .cb-col-4, .cb-trip-type-row { grid-template-columns: 1fr;   }
      .cb-trip-type-row{
       gap: 20px;
      }
      .cb-why-item-list{
       margin: 20px 0 20px 0 !important;
      }
     .cb-col-2 { grid-template-columns: 1fr; }
     .cb-vehicles-grid { grid-template-columns: repeat(2, 1fr); }
     .cb-step-label { font-size: 14px; }
     .cb-step-connector { min-width: 24px; }
     .cb-confirm-table th, .cb-confirm-table td{
       font-size: 14px;
     }
     .cb-action-row{
       flex-direction: column;
       gap: 13px;
     }
     .cb-trip-summary-card{
       padding: 20px !important;
     }
     .cb-fare-note{
       margin: 10px 0 10px 0 !important;
     }
     .cb-estimated-label,
     .cb-success-ref{
       font-size: 16px;
     }
     .cb-estimated-fare,
     .cb-vehicle-price,
     .cb-success-wrap h2 {
       font-size: 20px;
     }
     .cb-summary-row{
       padding-bottom: 10px !important;
     }
     .cb-summary-rows{
       gap: 15px;
       margin: 20px 0 !important;
     }
     .cb-sum-label,
     .cb-vehicle-specs{
       font-size: 14px;
     }
     .cb-sum-value{
       font-size: 15px;
     }
     .cb-summary-continue-btn,
     #cb-submit-btn,
     #cb-back-btn{
       padding: 10px !important;
       font-size: 14px !important;
     }
     .cb-input{
       height: 40px;
     }
     #cb-booking-wrapper .cb-trip-btn{
       height: 40px !important;
       line-height: 38px !important;
     }
     .cb-vehicle-name{
       font-size: 20px;
       margin-top: 15px !important;
     }
     .cb-success-icon-wrap{
       width: 40px;
       height: 40px;
     }
     .cb-success-icon-wrap svg{
       height: 22px;
       width: 22px;
     }
   }
   @media (max-width: 1024px){
     .cb-booking-grid{
       gap: 40px;
     }
     .cb-vehicles-grid{
       gap: 20px;
       grid-template-columns: repeat(3, 1fr);
     }
   }
   @media (max-width: 992px){
     .cb-booking-grid,
     .cb-vehicles-grid,
     .cb-trip-type-row{
       gap: 20px;
     }
     .cb-field-grid{
       gap: 15px 20px;
     }
     #cb-contact-section h3, #cb-vehicle-section h3, #cb-confirm-section h3 {
       margin-bottom: 25px;
     }
     .cb-col-4{
       margin: 25px 0 !important;
     }
     #cb-booking-wrapper .cb-step-circle{
       width: 40px !important;
       height: 40px !important;
       font-size: 20px !important;
     }
   }
   @media (max-width: 420px) {
     .cb-vehicles-grid { grid-template-columns: 1fr; }
   }
   