:root {
      --primary-color: #0d6efd;
      --primary-light: #e8f4ff;
      --secondary-color: #6c757d;
      --error-color: #dc3545;
      --success-color: #198754;
      --border-color: #dee2e6;
      --counter-bg: #f8f9fa;
      --card-shadow: 0 10px 25px rgba(0, 0, 0, 0.08);
      --focus-shadow: 0 0 0 4px rgba(13, 110, 253, 0.15);
    }
    
    * {
      box-sizing: border-box;
    }
    
    body {
      background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
      color: #333;
      /* font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif; 
      padding: 30px 0;
      min-height: 100vh;
      line-height: 1.6;
      font-size: 0.95rem;*/
    }
    
    .booking-header {
      text-align: center;
      margin: 50px 0;
      padding: 0 20px;
    }
    
    .page-title {
      font-size: 2.5rem;
      font-weight: 800;
      color: #222;
      margin-bottom: 15px;
      background: linear-gradient(90deg, #0d6efd, #0dcaf0);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
    }
    
    .page-subtitle {
      font-size: 1.2rem;
      color: #6c757d;
      max-width: 600px;
      margin: 0 auto;
    }
    
    .main-container {
      max-width: 1200px;
      margin: 0 auto;
    }
    
    .booking-container {
      background: #ffffff;
      border-radius: 16px;
      padding: 40px;
      position: relative;
      box-shadow: var(--card-shadow);
      overflow: hidden;
    }
    
    .terms-container {
      background: #ffffff;
      border-radius: 16px;
      padding: 40px;
      height: 100%;
      box-shadow: var(--card-shadow);
    }
    
    .booking-header {
      text-align: center;
      margin-bottom: 40px;
      padding-bottom: 20px;
      border-bottom: 1px solid #eee;
    }
    
    .booking-header h1 {
      font-size: 2rem;
      margin-bottom: 5px;
      font-weight: 700;
      color: #222;
      background: linear-gradient(90deg, #0d6efd, #0dcaf0);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
    }
    
    .booking-header span.duration {
      font-size: 1rem;
      color: #555;
      font-weight: 500;
    }
    
    /* .section-title {
      font-size: 1.4rem;
      margin-top: 40px;
      margin-bottom: 25px;
      font-weight: 700;
      color: #222;
      position: relative;
      padding-bottom: 15px;
    }
    
    .section-title:after {
      content: '';
      position: absolute;
      bottom: 0;
      left: 0;
      width: 60px;
      height: 4px;
      background: linear-gradient(90deg, #0d6efd, #0dcaf0);
      border-radius: 2px;
    }
    
    .section-title i {
      margin-right: 12px;
      color: var(--primary-color);
      font-size: 1.2rem;
    } */
    
    /* Floating label styles */
    .form-floating {
      position: relative;
      margin-bottom: 1.5rem;
    }
    
    .form-floating > .form-control {
      height: calc(3.25rem + 2px);
      padding: 1.5rem 0.75rem 0.5rem;
      border: 1px solid var(--border-color);
      border-radius: 10px;
      font-size: 0.95rem;
      line-height: 1.25;
      transition: all 0.2s ease;
    }
    
    .form-floating > label {
      position: absolute;
      top: 0;
      left: 0;
      height: 100%;
      padding: 1.1rem 0.75rem;
      pointer-events: none;
      border: 1px solid transparent;
      transform-origin: 0 0;
      transition: all 0.2s ease-in-out;
      color: var(--secondary-color);
      font-size: 0.95rem;
    }
    
    .form-floating > .form-control:focus,
    .form-floating > .form-control:not(:placeholder-shown) {
      padding-top: 1.5rem;
      padding-bottom: 0.5rem;
    }
    
    .form-floating > .form-control:focus ~ label,
    .form-floating > .form-control:not(:placeholder-shown) ~ label,
    .form-floating > .form-control-plaintext ~ label,
    .form-floating > .form-select ~ label {
      transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
      background-color: white;
      padding: 0 0.5rem;
      margin-left: 0.1rem;
      color: var(--primary-color);
      z-index: 5;
      height: auto;
      opacity: 1;
    }
    
    .form-floating > .form-control:focus {
      box-shadow: var(--focus-shadow);
      border-color: var(--primary-color);
    }
    
    .form-floating > .form-control.error {
      border-color: var(--error-color);
    }
    
    .form-floating > .form-control.success {
      border-color: var(--success-color);
    }
    
    .form-floating > .form-control.error ~ label {
      color: var(--error-color);
    }
    
    .form-floating > .form-control.success ~ label {
      color: var(--success-color);
    }
    
    .feedback {
      display: block;
      margin-top: 5px;
      font-size: 0.85rem;
    }
    
    .error-feedback {
      color: var(--error-color);
    }
    
    .success-feedback {
      color: var(--success-color);
    }
    
    .price-summary {
      background: var(--primary-light);
      padding: 25px;
      border-radius: 12px;
      margin-top: 25px;
      /* border-left: 4px solid var(--primary-color); */
    }
    
    .price-summary div { 
      margin-bottom: 12px; 
      font-size: 1rem;
      display: flex;
      justify-content: space-between;
    }
    
    .price-summary div strong {
      font-weight: 600;
    }
    
    .note-traveler {
      font-size: 0.9rem;
      color: #555;
      margin-top: 25px;
      padding: 20px;
      background-color: #f8f9fa;
      border-radius: 10px;
      /* border-left: 4px solid var(--success-color); */
      line-height: 1.6;
    }
    
    /* Improved Traveler Counter - more compact */
    .traveler-counter-container {
      margin-bottom: 1.5rem;
    }
    
    .traveler-counter-label {
      font-weight: 500;
      margin-bottom: 10px;
      font-size: 1rem;
    }
    
    .traveler-counter {
      display: inline-flex;
      align-items: center;
      border-radius: 10px;
      overflow: hidden;
      border: 1px solid #ced4da;
    }
    
    .traveler-counter button {
      width: 40px;
      height: 40px;
      border: none;
      background: linear-gradient(90deg, #0d6efd, #0dcaf0);
      color: white;
      font-size: 1.2rem;
      line-height: 1;
      cursor: pointer;
      transition: all 0.2s;
    }
    
    .traveler-counter button:hover {
      opacity: 0.9;
    }
    
    .traveler-counter button:active {
      transform: scale(0.95);
    }
    
    .traveler-counter input {
      text-align: center;
      border: none;
      border-radius: 0;
      height: 40px;
      width: 60px;
      font-size: 1.1rem;
      font-weight: 600;
      background: var(--counter-bg);
    }
    
    .btn-primary {
      background: linear-gradient(90deg, #0d6efd, #0dcaf0);
      border: none;
      padding: 14px 24px;
      font-weight: 600;
      font-size: 1rem;
      border-radius: 10px;
      transition: all 0.3s;
      width: 100%;
      box-shadow: 0 4px 15px rgba(13, 110, 253, 0.3);
    }
    
    .btn-primary:hover {
      transform: translateY(-3px);
      box-shadow: 0 8px 20px rgba(13, 110, 253, 0.4);
    }
    
    /* Adjustments for date fields */
    .form-floating .flatpickr-input {
      height: calc(3.25rem + 2px);
      padding: 1.5rem 0.75rem 0.5rem;
    }
    
    /* List styling */
    .list-unstyled li {
      /* padding: 8px 0;*/
      font-size: 0.95rem;
      display: flex;
      align-items: center;
    }
    
    .list-unstyled li i {
      margin-right: 12px;
      color: var(--primary-color);
      font-size: 1.1rem;
      background: rgba(13, 110, 253, 0.1);
      width: 30px;
      height: 30px;
      display: flex;
      align-items: center;
      justify-content: center;
      border-radius: 50%;
    }
    
    /* Select2 customization */
    .select2-container--default .select2-selection--single {
      height: calc(3.25rem + 2px);
      padding: 1.5rem 0.75rem 0.5rem;
      border: 1px solid var(--border-color);
      border-radius: 10px;
    }
    
    .select2-container--default .select2-selection--single .select2-selection__arrow {
      height: calc(3.25rem + 2px);
    }
    
    .select2-container--default .select2-selection--single .select2-selection__placeholder {
      color: var(--secondary-color);
    }
    
    .select2-container--open .select2-dropdown--below {
      border-radius: 0 0 10px 10px;
    }
    
    .select2-results__option {
      padding: 10px 12px;
      font-size: 0.95rem;
    }
    
    /* Floating label fix for Select2 */
    .form-floating .select2-container ~ label {
      transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
      background-color: white;
      padding: 0 0.5rem;
      margin-left: 0.1rem;
      color: var(--primary-color);
      z-index: 5;
    }
    
    /* Terms and Conditions styling */
    .terms-content {
      max-height: 100vh;
      overflow-y: auto;
      padding-right: 15px;
      font-size: 0.9rem;
    }
    
    .terms-content h3 {
      font-size: 1.1rem;
      margin-top: 20px;
      margin-bottom: 12px;
      color: #222;
      font-weight: 600;
    }
    
    .terms-content h4 {
      font-size: 1rem;
      margin-top: 18px;
      margin-bottom: 8px;
      color: #333;
      font-weight: 600;
    }
    
    .terms-content p, .terms-content ul {
      margin-bottom: 12px;
      line-height: 1.6;
      color: #555;
    }
    
    .terms-content ul {
      padding-left: 18px;
    }
    
    .terms-content li {
      margin-bottom: 6px;
    }
    
    /* Sticky form */
    .sticky-col {
      position: sticky;
      top: 20px;
    }
    
    /* Improved Checkbox styling */
    .form-check {
      margin: 25px 0;
      padding-left: 2.5em;
      min-height: 1.8em;
    }
    
    .form-check-input {
      width: 1.3em;
      height: 1.3em;
      margin-left: -2.5em;
      margin-top: 0.15em;
      border: 2px solid var(--border-color);
      box-shadow: none;
    }
    
    .form-check-input:checked {
      background-color: var(--primary-color);
      border-color: var(--primary-color);
    }
    
    .form-check-input:focus {
      box-shadow: var(--focus-shadow);
      border-color: var(--primary-color);
    }
    
    .form-check-label {
      font-weight: 500;
      font-size: 1rem;
      padding-top: 2px;
      color: #333;
    }
    
    .terms-check .error-feedback {
      display: none;
      margin-top: 8px;
      font-size: 0.9rem;
    }
    
    /* Bank Details Section */
    .bank-details {
      margin-top: 30px;
      padding: 25px;
      background: #f9f9f9;
      border-radius: 12px;
      border: 1px solid #e0e0e0;
      position: relative;
      overflow: hidden;
    }
    
    .bank-details::before {
      content: '';
      position: absolute;
      top: 0;
      right: 0;
      width: 120px;
      height: 120px;
      background: linear-gradient(135deg, rgba(13, 110, 253, 0.1) 0%, rgba(13, 202, 240, 0.1) 100%);
      border-radius: 0 0 0 100%;
    }
    
    .bank-details h3 {
      font-size: 1.2rem;
      margin-bottom: 20px;
      color: #222;
      font-weight: 600;
      position: relative;
      padding-bottom: 10px;
      display: flex;
      align-items: center;
    }
    
    .bank-details h3:after {
      content: '';
      position: absolute;
      bottom: 0;
      left: 0;
      width: 40px;
      height: 3px;
      background: linear-gradient(90deg, #0d6efd, #0dcaf0);
      border-radius: 2px;
    }
    
    .bank-details h3 i {
      margin-right: 12px;
      color: var(--primary-color);
      font-size: 1.1rem;
      background: rgba(13, 110, 253, 0.1);
      width: 36px;
      height: 36px;
      display: flex;
      align-items: center;
      justify-content: center;
      border-radius: 50%;
    }
    
    .bank-details h4 {
      font-size: 1rem;
      margin-bottom: 15px;
      color: #333;
    }
    
    .bank-info {
      margin-bottom: 20px;
    }
    
    .bank-info-item {
      display: flex;
      margin-bottom: 10px;
      padding: 8px 0;
      font-size: 0.95rem;
      border-bottom: 1px dashed #eee;
    }
    
    .bank-info-label {
      min-width: 140px;
      font-weight: 600;
      color: #555;
    }
    
    .bank-info-value {
      color: #333;
      flex: 1;
    }
    
    .payment-methods {
      display: flex;
      flex-wrap: wrap;
      gap: 15px;
      margin-top: 20px;
    }
    
    .payment-method {
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 12px 15px;
      background: white;
      border: 1px solid #e0e0e0;
      border-radius: 10px;
      min-width: 110px;
      transition: all 0.2s;
      box-shadow: 0 3px 8px rgba(0,0,0,0.05);
    }
    
    .payment-method:hover {
      box-shadow: 0 5px 15px rgba(0,0,0,0.1);
      transform: translateY(-3px);
      border-color: var(--primary-color);
    }
    
    .payment-method i {
      font-size: 24px;
      margin-right: 8px;
    }
    
    .payment-method.visa i {
      color: #1a1f71; /* Visa blue */
    }
    
    .payment-method.mastercard i {
      color: #eb001b; /* Mastercard red */
    }
    
    .payment-method.amex i {
      color: #002663; /* Amex blue */
    }
    
    .payment-method.bank i {
      color: #008753; /* Bank green */
    }
    
    .payment-method.paypal i {
      color: #003087; /* PayPal blue */
    }
    
    .payment-text {
      font-size: 0.9rem;
      font-weight: 500;
    }
    
    .secure-payment {
      margin-top: 20px;
      padding: 15px;
      background: #e8f5e9;
      border-radius: 10px;
      display: flex;
      align-items: center;
      font-size: 0.9rem;
    }
    
    .secure-payment i {
      color: var(--success-color);
      font-size: 1.4rem;
      margin-right: 10px;
    }
    
    /* Mobile responsiveness improvements */
    @media (max-width: 1200px) {
      .main-container {
        padding: 0 20px;
      }
    }
    
    @media (max-width: 992px) {
      .sticky-col {
        position: relative;
        top: 0;
      }
      
      .terms-content {
        max-height: none;
        overflow-y: visible;
      }
      
      .booking-header h1 {
        font-size: 1.8rem;
      }
    }
    
    @media (max-width: 768px) {
      body {
        padding: 20px 0;
        font-size: 0.9rem;
      }
      
      .booking-container, .terms-container {
        padding: 30px;
        border-radius: 0;
      }
      
      .booking-header {
        margin-bottom: 30px;
        padding-bottom: 15px;
      }
      
      .booking-header h1 {
        font-size: 1.6rem;
      }
      
      .section-title {
        font-size: 1.2rem;
        margin-top: 30px;
        margin-bottom: 20px;
      }
      
      .form-floating > .form-control {
        padding: 1.4rem 0.75rem 0.4rem;
        font-size: 0.9rem;
      }
      
      .form-floating > label {
        font-size: 0.9rem;
        padding: 1rem 0.75rem;
      }
      
      .price-summary {
        padding: 20px;
      }
      
      .price-summary div {
        font-size: 0.95rem;
      }
      
      .note-traveler {
        padding: 15px;
        font-size: 0.85rem;
      }
      
      .payment-methods {
        justify-content: center;
      }
      
      .payment-method {
        min-width: 100px;
        padding: 10px 12px;
      }
      
      .bank-info-item {
        flex-direction: column;
      }
      
      .bank-info-label {
        min-width: auto;
        margin-bottom: 5px;
      }
      
      /* Improved checkbox for mobile */
      .form-check {
        margin: 20px 0;
        padding-left: 2.2em;
      }
      
      .form-check-input {
        width: 1.2em;
        height: 1.2em;
        margin-left: -2.2em;
      }
      
      .form-check-label {
        font-size: 0.95rem;
      }
      
      .bank-details::before {
        display: none;
      }
    }
    
    @media (max-width: 576px) {
      .booking-container, .terms-container {
        padding: 25px 20px;
      }
      
      .booking-header h1 {
        font-size: 1.4rem;
      }
      
      .section-title {
        font-size: 1.1rem;
      }
      
      .form-floating {
        margin-bottom: 1.2rem;
      }
      
      .traveler-counter button {
        width: 36px;
        height: 36px;
      }
      
      .traveler-counter input {
        height: 36px;
        width: 50px;
      }
      
      .btn-primary {
        padding: 12px 20px;
        font-size: 0.95rem;
      }
      
      .bank-details {
        padding: 20px;
      }
    }

    /* Alert Styles */
.alert {
    border-radius: 8px;
    padding: 15px 20px;
    margin: 20px 0;
    border: none;
    box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}

.alert-success {
    background: #d4edda;
    color: #155724;
    border-left: 4px solid #28a745;
}

.alert-error {
    background: #f8d7da;
    color: #721c24;
    border-left: 4px solid #dc3545;
}

.alert-warning {
    background: #fff3cd;
    color: #856404;
    border-left: 4px solid #ffc107;
}

.btn-close {
    padding: 0.75rem;
}