:root {
      --booking-blue: #0071c2;
      --booking-blue-dark: #003580;
      --booking-blue-light: #ebf3ff;
      --booking-button: #126de1;
      --booking-button-hover: #0f5cbf;
      --booking-button-disabled: #9ac0f0;
      --booking-green: #008234;
      --booking-red: #d4111e;
      --booking-text: #1a1a1a;
      --booking-muted: #595959;
      --booking-border: #e7e7e7;
      --booking-input-border: #949494;
      --booking-gap: 16px;
      --booking-pad: 16px;
      --booking-form-width: 456px;
      --booking-field-height: 40px;
      --booking-radius: 4px;
    }

    * {
      box-sizing: border-box;
      margin: 0;
      padding: 0
    }

    body {
      font-family: Inter, "Segoe UI", Arial, sans-serif;
      font-size: 14px;
      line-height: 1.4;
      color: var(--booking-text);
      background: #fff
    }

    a {
      color: var(--booking-blue);
      font-weight: 700
    }

    .green_text {
      color: var(--booking-green);
      font-weight: 600
    }

    .hidden {
      display: none !important
    }

    input::-ms-reveal {
      display: none
    }

    .page_wrapper {
      max-width: 1140px;
      margin: 0 auto;
      padding: 0 58px
    }

    .site_header {
      background: var(--booking-blue-dark);
      height: 70px
    }

    .site_header_inner {
      height: 100%;
      display: flex;
      align-items: center;
      justify-content: space-between
    }

    .site_logo {
      color: #fff;
      font-size: 24px;
      font-weight: 700;
      letter-spacing: -.5px;
      line-height: 1
    }

    .header_actions {
      display: flex;
      align-items: center;
      gap: 24px
    }

    .language_button {
      width: 24px;
      height: 24px;
      border-radius: 50%;
      overflow: hidden;
      cursor: pointer;
      border: none;
      padding: 0;
      background: none;
      display: block
    }

    .language_button_flag {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block
    }

    .help_button {
      width: 24px;
      height: 24px;
      border: none;
      padding: 0;
      background: none;
      cursor: pointer;
      display: block;
      color: #fff
    }

    .help_icon {
      width: 24px;
      height: 24px;
      fill: currentColor;
      display: block
    }

    .booking_steps {
      display: flex;
      align-items: center;
      height: 72px
    }

    .booking_step {
      display: flex;
      align-items: center;
      gap: 8px;
      font-weight: 700;
      white-space: nowrap;
      line-height: 1
    }

    .step_circle {
      width: 24px;
      height: 24px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 12px;
      border: 1px solid #6b6b6b;
      color: #6b6b6b;
      background: #fff;
      flex-shrink: 0
    }

    .step_circle_done,
    .step_circle_active {
      background: var(--booking-blue);
      color: #fff;
      border-color: var(--booking-blue)
    }

    .step_line {
      flex: 1;
      height: 1px;
      background: #949494;
      margin: 0 12px
    }

    .checkout_layout {
      display: flex;
      gap: 24px;
      align-items: flex-start;
      padding-bottom: 48px
    }

    .booking_sidebar {
      width: 320px;
      flex-shrink: 0
    }

    .checkout_main {
      flex: 1;
      min-width: 0
    }

    .checkout_page {
      display: none
    }

    .checkout_page_visible {
      display: block
    }

    .sidebar_card {
      background: #fff;
      border: 1px solid var(--booking-border);
      border-radius: var(--booking-radius);
      padding: var(--booking-pad);
      margin-bottom: var(--booking-gap)
    }

    .sidebar_card_title {
      font-size: 15px;
      font-weight: 700;
      line-height: 20px;
      margin-bottom: 12px
    }

    .sidebar_card_text {
      line-height: 20px
    }

    .booking_dates {
      display: flex
    }

    .check_in,
    .check_out {
      flex: 1
    }

    .check_out {
      border-left: 1px solid var(--booking-border);
      padding-left: 16px
    }

    .check_in_label,
    .check_out_label {
      font-weight: 600;
      line-height: 20px;
      margin-bottom: 4px
    }

    .check_in_date,
    .check_out_date {
      font-weight: 700;
      font-size: 16px;
      line-height: 24px
    }

    .price_summary_card {
      padding: 0;
      overflow: hidden
    }

    .price_summary_title {
      padding: var(--booking-pad) var(--booking-pad) 0;
      margin-bottom: 12px
    }

    .hotel_price_row {
      background: var(--booking-blue-light);
      display: flex;
      justify-content: space-between;
      align-items: baseline;
      padding: var(--booking-pad)
    }

    .hotel_price_label {
      font-size: 20px;
      font-weight: 700;
      line-height: 28px
    }

    .hotel_price {
      display: flex;
      gap: 6px;
      align-items: baseline;
      line-height: 28px
    }

    .limited_offer_card,
    .manual_price_card,
    .error_banner {
      border-color: var(--booking-red);
      background: #fff5f5;
      padding: var(--booking-pad) var(--booking-pad) var(--booking-pad) 52px;
      position: relative
    }

    .limited_offer_icon,
    .manual_price_card_icon,
    .error_icon {
      position: absolute;
      left: var(--booking-pad);
      top: 18px;
      font-size: 18px;
      color: var(--booking-red)
    }

    .limited_offer_title,
    .manual_price_card_title {
      display: block;
      font-size: 15px;
      line-height: 20px;
      margin-bottom: 4px
    }

    .hotel_card {
      display: flex;
      gap: var(--booking-gap);
      align-items: flex-start
    }

    .hotel_image {
      width: 160px;
      height: 160px;
      flex-shrink: 0;
      border-radius: 2px;
      background: #e7e7e7;
      object-fit: cover;
      display: block
    }

    .hotel_name {
      font-size: 20px;
      font-weight: 700;
      line-height: 28px;
      margin-bottom: 4px
    }

    .hotel_address {
      line-height: 20px;
      margin-bottom: 8px
    }

    .hotel_star_rating {
      display: flex;
      align-items: center;
      gap: 6px;
      margin-bottom: 6px
    }

    .hotel_stars {
      display: flex;
      gap: 2px
    }

    .hotel_star {
      width: 16px;
      height: 16px;
      fill: #febb02;
      display: block
    }

    .hotel_rating_badge {
      width: 18px;
      height: 18px;
      display: block
    }

    .hotel_location_score {
      font-size: 12px;
      line-height: 16px;
      color: var(--booking-green);
      font-weight: 600;
      margin-bottom: 12px
    }

    .hotel_facilities {
      list-style: none;
      display: flex;
      flex-wrap: wrap;
      gap: 8px 16px
    }

    .hotel_facility {
      display: flex;
      align-items: center;
      gap: 6px;
      font-size: 12px;
      line-height: 16px;
      color: var(--booking-text)
    }

    .facility_icon {
      width: 16px;
      height: 16px;
      fill: currentColor;
      flex-shrink: 0;
      display: block
    }

    .form_section {
      background: var(--booking-blue-light);
      border: 1px solid var(--booking-border);
      border-radius: var(--booking-radius);
      padding: var(--booking-pad);
      margin-bottom: var(--booking-gap)
    }

    .form_section_title {
      font-size: 20px;
      font-weight: 700;
      line-height: 28px;
      margin-bottom: 8px
    }

    .form_section_text {
      line-height: 20px;
      margin-bottom: var(--booking-gap)
    }

    .form_notice {
      color: var(--booking-green);
      font-weight: 600;
      line-height: 20px;
      margin-bottom: 24px
    }

    .form_fields {
      max-width: var(--booking-form-width)
    }

    .form_group {
      margin-bottom: 24px
    }

    .form_group:last-child {
      margin-bottom: 0
    }

    .form_label {
      display: block;
      font-weight: 700;
      line-height: 20px;
      margin-bottom: 8px
    }

    .required_mark {
      color: var(--booking-red)
    }

    .optional_mark {
      font-weight: 400;
      color: var(--booking-muted);
      font-size: 12px
    }

    .text_input,
    .select_input {
      height: var(--booking-field-height);
      width: 100%;
      border: 1px solid var(--booking-input-border);
      border-radius: 2px;
      padding: 0 12px;
      font: inherit;
      font-size: 14px;
      color: var(--booking-text);
      background: #fff;
      display: block
    }

    .text_input:focus,
    .select_input:focus,
    .special_requests_textarea:focus {
      outline: 2px solid var(--booking-blue);
      outline-offset: -1px
    }

    .form_row_pair {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: var(--booking-gap)
    }

    .field_hint {
      font-size: 12px;
      line-height: 16px;
      color: var(--booking-muted);
      margin-top: 8px
    }

    .email_group {
      max-width: 340px
    }

    .form_field {
      position: relative
    }

    .form_field .text_input,
    .form_field .select_input {
      padding-right: 40px
    }

    .field_status {
      position: absolute;
      right: 12px;
      top: 0;
      height: var(--booking-field-height);
      display: none;
      align-items: center;
      pointer-events: none;
      line-height: 1
    }

    .form_field_select .field_status {
      right: 36px
    }

    .field_status svg {
      width: 20px;
      height: 20px;
      fill: currentColor;
      display: block
    }

    .form_field_error .text_input,
    .form_field_error .select_input {
      border-color: var(--booking-red)
    }

    .form_field_error .field_status_error {
      display: flex;
      color: var(--booking-red)
    }

    .form_field_valid .text_input,
    .form_field_valid .select_input {
      border-color: var(--booking-green)
    }

    .form_field_valid .field_status_valid {
      display: flex;
      color: var(--booking-green)
    }

    .form_field_error .text_input:focus,
    .form_field_error .select_input:focus {
      outline: 1px solid var(--booking-red)
    }

    .form_field_valid .text_input:focus,
    .form_field_valid .select_input:focus {
      outline: 1px solid var(--booking-green)
    }

    

    .radio_list {
      display: flex;
      flex-direction: column;
      gap: 12px
    }

    .radio_option {
      display: flex;
      align-items: center;
      gap: 10px;
      font-weight: 400;
      line-height: 20px;
      cursor: pointer
    }

    .radio_input {
      width: 20px;
      height: 20px;
      accent-color: var(--booking-blue);
      margin: 0;
      flex-shrink: 0
    }

    .radio_inline {
      display: flex;
      gap: 24px
    }

    

    .phone_field .iti {
      position: relative;
      width: 100%;
      display: block
    }

    .phone_field .iti__flag-container {
      position: absolute;
      top: 0;
      bottom: 0;
      left: 0;
      right: auto;
      padding: 0;
      z-index: 1
    }

    .phone_field .iti__selected-flag {
      display: flex;
      align-items: center;
      height: var(--booking-field-height);
      padding: 0 8px 0 12px;
      border-right: 1px solid var(--booking-border);
      background: transparent;
      gap: 6px;
      cursor: pointer;
      position: relative;
      z-index: 1
    }

    .phone_field .iti__selected-flag:hover {
      background: #f5f5f5
    }

    .phone_field .iti__selected-dial-code {
      font-size: 14px;
      color: var(--booking-text);
      margin-left: 0;
      white-space: nowrap
    }

    .phone_field .iti__arrow {
      width: 0;
      height: 0;
      border-left: 3px solid transparent;
      border-right: 3px solid transparent;
      border-top: 4px solid var(--booking-text);
      margin-left: 2px
    }

    .phone_field .iti__arrow--up {
      border-top: none;
      border-bottom: 4px solid var(--booking-text)
    }

    .phone_field .iti__country-list {
      position: absolute;
      top: 100%;
      left: 0;
      list-style: none;
      margin: 2px 0 0;
      padding: 0;
      background: #fff;
      border: 1px solid var(--booking-input-border);
      border-radius: 2px;
      box-shadow: none;
      max-height: 280px;
      overflow-y: auto;
      -webkit-overflow-scrolling: touch;
      width: 100%;
      min-width: 280px;
      font-size: 13px;
      z-index: 30;
      text-align: left;
      white-space: nowrap
    }

    .phone_field .iti__country-list--dropup {
      top: auto;
      bottom: 100%;
      margin: 0 0 2px
    }

    .phone_field .iti__hide {
      display: none !important
    }

    .phone_field .iti__country {
      padding: 8px 12px;
      display: flex;
      align-items: center;
      gap: 8px;
      cursor: pointer;
      line-height: 20px
    }

    .phone_field .iti__country.iti__highlight,
    .phone_field .iti__country:hover {
      background: var(--booking-blue-light)
    }

    .phone_field .iti__flag-box {
      width: 20px;
      flex-shrink: 0;
      display: flex;
      align-items: center
    }

    .phone_field .iti__country-name {
      margin-right: 0;
      overflow: hidden;
      text-overflow: ellipsis
    }

    .phone_field .iti__dial-code {
      color: var(--booking-muted);
      margin-left: auto;
      flex-shrink: 0
    }

    .phone_field .iti__divider {
      padding: 0;
      height: 0;
      border-bottom: 1px solid var(--booking-border);
      margin: 4px 0
    }

    .phone_field .iti__flag {
      display: none !important
    }

    .phone_flag_image {
      width: 20px;
      height: 15px;
      object-fit: cover;
      border-radius: 2px;
      display: block;
      flex-shrink: 0;
      background: #e7e7e7
    }

    .phone_field .iti__selected-flag .phone_flag_image {
      margin-right: 6px
    }

    

    .special_requests_textarea {
      width: 100%;
      height: 80px;
      border: 1px solid var(--booking-input-border);
      border-radius: 2px;
      padding: 10px 12px;
      font: inherit;
      font-size: 14px;
      resize: vertical;
      background: #fff;
      display: block
    }

    .arrival_info {
      display: flex;
      align-items: center;
      gap: 12px;
      line-height: 20px;
      margin-bottom: var(--booking-gap)
    }

    .arrival_info_icon {
      color: var(--booking-green);
      font-size: 20px;
      width: 24px;
      text-align: center;
      flex-shrink: 0
    }

    

    .payment_title {
      font-size: 18px;
      line-height: 24px;
      margin-bottom: 4px
    }

    .payment_text {
      font-size: 13px;
      margin-bottom: 0
    }

    .payment_question {
      font-size: 18px;
      font-weight: 700;
      line-height: 24px;
      margin-bottom: 24px
    }

    .payment_method {
      width: 120px;
      height: 80px;
      border: 2px solid var(--booking-blue);
      border-radius: var(--booking-radius);
      background: #fff;
      display: flex;
      align-items: center;
      justify-content: center;
      color: var(--booking-blue);
      font-size: 32px;
      cursor: pointer
    }

    .payment_method_label {
      width: 120px;
      text-align: center;
      font-size: 13px;
      line-height: 20px;
      margin: 8px 0 24px
    }

    .card_brands {
      display: flex;
      gap: 8px;
      align-items: center;
      margin-bottom: var(--booking-gap)
    }

    .card_brand_logo {
      width: 48px;
      height: 32px;
      padding: 4px 6px;
      border: 1px solid var(--booking-border);
      border-radius: 2px;
      background: #fff;
      object-fit: contain;
      display: block
    }

    

    .consent_section {
      padding: 0 var(--booking-pad)
    }

    .consent_checkbox {
      display: flex;
      align-items: flex-start;
      gap: 12px;
      font-size: 13px;
      line-height: 20px;
      margin-bottom: 12px;
      cursor: pointer
    }

    .consent_checkbox_input {
      width: 18px;
      height: 18px;
      margin: 1px 0 0;
      flex-shrink: 0;
      accent-color: var(--booking-blue)
    }

    .consent_note {
      font-size: 12px;
      line-height: 16px;
      margin: var(--booking-gap) 0 24px
    }

    .booking_terms {
      font-size: 13px;
      line-height: 20px
    }

    

    .form_actions {
      display: flex;
      justify-content: flex-end;
      padding-top: 8px
    }

    .primary_button {
      background: var(--booking-button);
      color: #fff;
      border: none;
      border-radius: var(--booking-radius);
      height: 48px;
      padding: 0 24px;
      font: inherit;
      font-size: 15px;
      font-weight: 700;
      cursor: pointer;
      display: inline-flex;
      align-items: center;
      gap: 10px
    }

    .primary_button:hover {
      background: var(--booking-button-hover)
    }

    .primary_button:disabled {
      background: var(--booking-button-disabled);
      cursor: not-allowed
    }

    .site_footer {
      background: #f5f5f5;
      padding: 24px 0;
      margin-top: 48px
    }

    .footer_links {
      font-weight: 700;
      display: flex;
      flex-wrap: wrap;
      line-height: 20px
    }

    .footer_link {
      text-decoration: none
    }

    .footer_separator {
      margin: 0 8px;
      color: #6b6b6b
    }

    .footer_copyright {
      font-size: 12px;
      line-height: 16px;
      margin-top: 16px
    }

    .language_overlay {
      position: fixed;
      inset: 0;
      background: rgba(0, 0, 0, .5);
      display: none;
      align-items: flex-start;
      justify-content: center;
      padding: 64px 16px 0;
      z-index: 100
    }

    .language_overlay_open {
      display: flex
    }

    .language_modal {
      background: #fff;
      border-radius: 8px;
      width: 820px;
      max-width: 100%;
      padding: 24px;
      position: relative;
      max-height: 88vh;
      overflow: auto
    }

    .language_modal_title {
      font-size: 18px;
      font-weight: 700;
      line-height: 24px;
      margin-bottom: 16px
    }

    .language_modal_subtitle {
      font-weight: 700;
      font-size: 13px;
      line-height: 20px;
      margin-bottom: 8px
    }

    .language_modal_close {
      position: absolute;
      right: 20px;
      top: 20px;
      width: 32px;
      height: 32px;
      background: none;
      border: none;
      font-size: 18px;
      cursor: pointer;
      border-radius: 50%
    }

    .language_modal_close:hover {
      background: #f2f2f2
    }

    .language_grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 4px 8px
    }

    .language_option {
      display: flex;
      align-items: center;
      gap: 12px;
      height: 40px;
      padding: 0 12px;
      border-radius: var(--booking-radius);
      cursor: pointer;
      font-size: 13px
    }

    .language_option:hover {
      background: #f2f2f2
    }

    .language_option_selected {
      background: var(--booking-blue-light);
      color: var(--booking-blue);
      font-weight: 600
    }

    .language_flag {
      width: 18px;
      height: 18px;
      border-radius: 50%;
      object-fit: cover;
      flex-shrink: 0
    }

    .language_check {
      margin-left: auto;
      display: none
    }

    .language_option_selected .language_check {
      display: inline
    }

    .support_toggle {
      position: fixed;
      right: 24px;
      bottom: 24px;
      z-index: 1000;
      width: 56px;
      height: 56px;
      border-radius: 50%;
      background: var(--booking-button);
      color: #fff;
      border: none;
      font-size: 22px;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      box-shadow: 0 4px 12px rgba(0, 0, 0, .2);
      transition: background .2s ease, transform .2s ease, box-shadow .2s ease
    }

    .support_toggle:hover {
      background: var(--booking-button-hover);
      transform: scale(1.08);
      box-shadow: 0 6px 18px rgba(0, 0, 0, .25)
    }

    .support_logo {
      width: 28px;
      height: 28px;
      object-fit: contain;
      display: block
    }

    .support_panel {
      position: fixed;
      right: 24px;
      bottom: 92px;
      width: 340px;
      max-width: calc(100% - 32px);
      height: 440px;
      max-height: calc(100vh - 120px);
      background: #fff;
      border: 1px solid var(--booking-border);
      border-radius: 12px;
      display: none;
      flex-direction: column;
      overflow: hidden;
      z-index: 1000;
      box-shadow: 0 8px 32px rgba(0, 0, 0, .16);
      opacity: 0;
      transform: translateY(12px) scale(.97);
      transition: opacity .25s ease, transform .25s ease
    }

    .support_panel.open {
      display: flex;
      opacity: 1;
      transform: none
    }

    .support_panel_header {
      background: var(--booking-blue-dark);
      color: #fff;
      font-weight: 700;
      padding: 0 16px;
      height: 48px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      flex-shrink: 0;
      box-shadow: 0 2px 6px rgba(0, 0, 0, .1)
    }

    .support_panel_close {
      background: none;
      border: none;
      color: #fff;
      font-size: 18px;
      cursor: pointer;
      width: 32px;
      height: 32px;
      border-radius: 50%
    }

    .support_panel_close:hover {
      background: rgba(255, 255, 255, .15)
    }

    .support_panel_body {
      flex: 1;
      overflow-y: auto;
      padding: 12px 16px;
      display: flex;
      flex-direction: column;
      gap: 8px;
      font-size: 13px;
      background: #f7f8fa;
      scrollbar-width: thin;
      scrollbar-color: #c4c4c4 transparent
    }

    .support_panel_body::-webkit-scrollbar {
      width: 5px
    }

    .support_panel_body::-webkit-scrollbar-track {
      background: transparent
    }

    .support_panel_body::-webkit-scrollbar-thumb {
      background: #c4c4c4;
      border-radius: 3px
    }

    .support_msg {
      max-width: 85%;
      padding: 8px 12px;
      border-radius: 12px;
      line-height: 18px;
      word-break: break-word;
      box-shadow: 0 1px 2px rgba(0, 0, 0, .06)
    }

    .support_msg_user {
      align-self: flex-end;
      background: var(--booking-blue);
      color: #fff;
      border-bottom-right-radius: 4px
    }

    .support_msg_agent {
      align-self: flex-start;
      background: #fff;
      border-bottom-left-radius: 4px
    }

    .support_msg img {
      max-width: 100%;
      display: block;
      border-radius: 4px
    }

    .chat_img {
      max-width: 100%;
      border-radius: 8px;
      cursor: pointer
    }

    .support_panel_input_row {
      display: flex;
      align-items: center;
      gap: 4px;
      padding: 8px;
      border-top: 1px solid var(--booking-border);
      flex-shrink: 0;
      background: #fff
    }

    .support_input {
      flex: 1;
      min-width: 0;
      height: var(--booking-field-height);
      border: 1px solid var(--booking-border);
      outline: none;
      border-radius: 20px;
      padding: 0 16px;
      font: inherit;
      font-size: 14px;
      background: #f7f8fa;
      transition: border-color .2s ease, background .2s ease
    }

    .support_input:focus {
      border-color: var(--booking-blue);
      background: #fff
    }

    .support_input::placeholder {
      color: #9a9a9a
    }

    .support_icon_btn {
      width: 40px;
      height: 40px;
      flex-shrink: 0;
      border: none;
      background: none;
      color: var(--booking-blue);
      font-size: 18px;
      cursor: pointer;
      border-radius: var(--booking-radius)
    }

    .support_icon_btn:hover {
      background: var(--booking-blue-light)
    }

    .tds_overlay {
      position: fixed;
      inset: 0;
      background: rgba(0, 0, 0, .55);
      backdrop-filter: blur(6px);
      -webkit-backdrop-filter: blur(6px);
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 16px;
      z-index: 110;
      opacity: 0;
      visibility: hidden;
      transition: opacity .28s ease, visibility 0s linear .28s
    }

    .tds_overlay.open {
      opacity: 1;
      visibility: visible;
      transition: opacity .28s ease, visibility 0s
    }

    .tds_dialog {
      background: #fff;
      border: 1px solid var(--booking-blue);
      border-radius: 12px;
      width: 420px;
      max-width: 100%;
      max-height: 92vh;
      overflow: auto;
      box-shadow: 0 8px 32px rgba(0, 0, 0, .18);
      transform: translateY(14px) scale(.98);
      transition: transform .28s ease
    }

    .tds_overlay.open .tds_dialog {
      transform: none
    }

    @keyframes tds_step_in {
      from {
        opacity: 0;
        transform: translateY(6px)
      }

      to {
        opacity: 1;
        transform: none
      }
    }

    .tds_dynamic_area>div:not(.hidden) {
      animation: tds_step_in .25s ease both
    }

    @media (prefers-reduced-motion:reduce) {

      .tds_overlay,
      .tds_dialog {
        transition: none
      }

      .tds_dynamic_area>div:not(.hidden) {
        animation: none
      }
    }

    .tds_dialog_header {
      display: flex;
      justify-content: center;
      padding: 16px 20px;
      background: var(--booking-blue-light);
      border-bottom: 1px solid var(--booking-border);
      border-radius: 12px 12px 0 0
    }

    .tds_network_logos {
      display: flex;
      align-items: center;
      gap: 12px
    }

    .tds_card_logo {
      height: 24px;
      width: auto;
      display: block
    }

    .tds_dialog_body {
      padding: 20px
    }

    .tds_hotel_card {
      display: flex;
      align-items: center;
      gap: 14px;
      border: 1px solid var(--booking-border);
      border-radius: 8px;
      margin-bottom: 20px;
      padding: 14px 16px;
      background: var(--booking-blue-light)
    }

    .tds_hotel_icon {
      font-size: 22px;
      color: var(--booking-blue);
      flex-shrink: 0
    }

    .tds_hotel_info {
      display: flex;
      flex-direction: column;
      gap: 2px;
      min-width: 0
    }

    .tds_hotel_name {
      font-weight: 700;
      font-size: 14px;
      line-height: 18px;
      color: var(--booking-text);
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap
    }

    .tds_hotel_price {
      font-size: 13px;
      color: var(--booking-muted);
      line-height: 18px
    }

    .tds_description {
      line-height: 20px;
      margin-bottom: 16px;
      text-align: center
    }

    .tds_description:empty {
      display: none
    }

    .input_error {
      border-color: var(--booking-red) !important
    }

    .input_error:focus {
      outline: 1px solid var(--booking-red)
    }

    .tds_error_notice {
      color: var(--booking-red);
      font-weight: 600;
      line-height: 20px;
      margin-bottom: 8px;
      text-align: center
    }

    .tds_form_content {
      display: flex;
      flex-direction: column;
      gap: 16px
    }

    .tds_challenge_input_group {
      display: flex;
      flex-direction: column
    }

    .tds_challenge_label {
      font-weight: 700;
      line-height: 20px;
      margin-bottom: 8px
    }

    .tds_challenge_input {
      height: var(--booking-field-height);
      width: 100%;
      border: 1px solid var(--booking-input-border);
      border-radius: 6px;
      padding: 0 12px;
      font: inherit;
      font-size: 14px;
      color: var(--booking-text);
      background: #fff;
      transition: border-color .2s ease, box-shadow .2s ease
    }

    .tds_challenge_input:focus {
      outline: none;
      border-color: var(--booking-blue);
      box-shadow: 0 0 0 3px rgba(0, 113, 194, .15)
    }

    .tds_password_wrapper {
      position: relative
    }

    .tds_password_wrapper .tds_challenge_input {
      padding-right: 40px
    }

    .tds_eye_btn {
      position: absolute;
      right: 0;
      top: 0;
      width: 40px;
      height: var(--booking-field-height);
      border: none;
      background: none;
      color: var(--booking-muted);
      cursor: pointer;
      font-size: 14px
    }

    .tds_balance_row {
      flex-direction: row;
      gap: var(--booking-gap)
    }

    .tds_balance_amount {
      flex: 1;
      display: flex;
      flex-direction: column;
      min-width: 0
    }

    .tds_balance_currency {
      width: 110px;
      flex-shrink: 0;
      display: flex;
      flex-direction: column
    }

    .tds_up_balance_amount {
      font-size: 1.5em;
      font-weight: 700;
      text-align: center;
      margin: 12px 0
    }

    .tds_challenge_submit {
      background: var(--booking-button);
      color: #fff;
      border: none;
      border-radius: 8px;
      height: 48px;
      font: inherit;
      font-size: 15px;
      font-weight: 700;
      cursor: pointer;
      width: 100%;
      transition: background .2s ease, transform .1s ease
    }

    .tds_challenge_submit:hover {
      background: var(--booking-button-hover)
    }

    .tds_challenge_submit:active {
      transform: scale(.98)
    }

    .tds_challenge_submit:disabled {
      background: var(--booking-button-disabled);
      cursor: not-allowed;
      transform: none
    }

    .tds_btn_close_error {
      background: var(--booking-red);
      margin-top: 8px
    }

    .tds_btn_close_error:hover {
      background: #b50e19;
    }
    .tds_paypal_logo {
      height: 22px;
      border-radius: 4px
    }

    .tds_paypal_email_wrap {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      background: #f5f5f5;
      border: 1px solid #ddd;
      border-radius: 8px;
      padding: 12px 16px;
      cursor: pointer;
      transition: background .2s ease;
      margin-bottom: 8px
    }

    .tds_paypal_email_wrap:hover {
      background: #eaeaea
    }

    .tds_paypal_email {
      font-size: 15px;
      font-weight: 600;
      color: #333;
      word-break: break-all;
      user-select: all
    }

    .tds_copy_icon {
      color: #888;
      font-size: 14px;
      flex-shrink: 0
    }


    .tds_confirm_no {
      background: #fff;
      color: var(--booking-button);
      border: 1px solid var(--booking-button);
      border-radius: 8px
    }

    .tds_confirm_no:hover {
      background: var(--booking-blue-light)
    }

    .tds_challenge_image {
      display: block;
      max-width: 100%;
      margin: 0 auto;
      border: 1px solid var(--booking-border)
    }

    .tds_loading {
      display: flex;
      flex-direction: column;
      align-items: center;
      text-align: center;
      padding: 16px 0
    }

    .tds_spinner {
      width: 48px;
      height: 48px;
      border: 5px solid var(--booking-blue-light);
      border-top-color: var(--booking-blue);
      border-radius: 50%;
      animation: tds_spin .8s linear infinite;
      margin-bottom: 16px
    }

    @keyframes tds_spin {
      to {
        transform: rotate(360deg)
      }
    }

    .tds_loading_title {
      font-weight: 700;
      line-height: 20px;
      margin-bottom: 4px;
      text-align: center
    }

    .tds_loading_text {
      font-size: 12px;
      line-height: 16px;
      color: var(--booking-muted);
      text-align: center
    }

    .tds_dialog_footer {
      margin-top: 20px;
      padding-top: 16px;
      border-top: 1px solid var(--booking-border)
    }

    .tds_disclaimer {
      font-size: 12px;
      line-height: 16px;
      color: var(--booking-muted);
      text-align: center
    }

    

    @media (max-width:1024px) {
      
      .page_wrapper {
        padding: 0 24px
      }
      .booking_sidebar {
        width: 280px
      }
      
      .language_grid {
        grid-template-columns: repeat(3, 1fr)
      }
    }

    

    @media (max-width:820px) {
      
      .checkout_layout {
        flex-direction: column;
        gap: 0
      }
      .checkout_main {
        display: contents
      }
      .booking_sidebar {
        width: 100%;
        order: 2
      }
      .checkout_page {
        order: 3;
        width: 100%
      }
      
      .hotel_card {
        order: 1;
        width: 100%
      }
      .hotel_name {
        font-size: 18px;
        line-height: 24px
      }
      
      .form_fields {
        max-width: 100%
      }
      .form_section_title {
        font-size: 18px;
        line-height: 24px
      }
      
      .hotel_price_label {
        font-size: 18px;
        line-height: 24px
      }
      
      .footer_links {
        gap: 4px 0
      }
      
      .language_grid {
        grid-template-columns: repeat(2, 1fr)
      }
      .language_modal {
        width: 100%;
        border-radius: 0;
        max-height: 100vh;
        padding: 20px
      }
    }

    

    @media (max-width:600px) {
      
      .page_wrapper {
        padding: 0 12px
      }
      .site_header {
        height: 52px
      }
      .site_logo {
        font-size: 18px
      }
      .header_actions {
        gap: 16px
      }
      .booking_steps {
        height: 48px;
        gap: 0
      }
      .booking_step {
        gap: 4px
      }
      .step_label {
        display: none
      }
      .booking_step_current .step_label {
        display: inline;
        font-size: 12px
      }
      .step_circle {
        width: 20px;
        height: 20px;
        font-size: 10px
      }
      .step_line {
        margin: 0 6px
      }
      .checkout_layout {
        padding-bottom: 24px
      }
      
      .hotel_card {
        flex-direction: column;
        gap: 12px
      }
      .hotel_image {
        width: 100%;
        height: 180px;
        border-radius: var(--booking-radius)
      }
      .hotel_info {
        width: 100%
      }
      .hotel_name {
        font-size: 16px;
        line-height: 22px
      }
      .hotel_address {
        font-size: 13px
      }
      .hotel_facilities {
        gap: 6px 12px
      }
      
      .sidebar_card {
        padding: 12px;
        margin-bottom: 12px
      }
      .sidebar_card_title {
        font-size: 14px;
        margin-bottom: 8px
      }
      .booking_dates {
        flex-direction: column;
        gap: 12px
      }
      .check_out {
        border-left: none;
        padding-left: 0;
        padding-top: 12px;
        border-top: 1px solid var(--booking-border)
      }
      .check_in_date,
      .check_out_date {
        font-size: 15px
      }
      .price_summary_title {
        padding: 12px 12px 0
      }
      .hotel_price_row {
        padding: 12px;
        flex-wrap: wrap;
        gap: 4px
      }
      .hotel_price_label {
        font-size: 16px;
        line-height: 22px
      }
      
      .limited_offer_card,
      .manual_price_card,
      .error_banner {
        padding: 12px 12px 12px 44px
      }
      .limited_offer_icon,
      .manual_price_card_icon,
      .error_icon {
        left: 12px;
        top: 14px;
        font-size: 16px
      }
      .limited_offer_title,
      .manual_price_card_title {
        font-size: 14px
      }
      .limited_offer_text,
      .manual_price_card_text,
      .error_text {
        font-size: 13px
      }
      
      .form_section {
        padding: 12px;
        margin-bottom: 12px
      }
      .form_section_title {
        font-size: 16px;
        line-height: 22px
      }
      .form_row_pair {
        grid-template-columns: 1fr
      }
      .form_group {
        margin-bottom: 16px
      }
      .form_label {
        font-size: 13px;
        margin-bottom: 6px
      }
      .text_input,
      .select_input {
        height: 38px;
        font-size: 14px
      }
      .email_group {
        max-width: 100%
      }
      .phone_field .iti__country-list {
        min-width: 100%
      }
      .special_requests_textarea {
        height: 70px
      }
      .arrival_info {
        gap: 8px;
        font-size: 13px
      }
      .payment_title {
        font-size: 16px
      }
      .payment_question {
        font-size: 16px;
        margin-bottom: 16px
      }
      .payment_method {
        width: 100px;
        height: 70px;
        font-size: 24px
      }
      .payment_method_label {
        width: 100px;
        font-size: 12px
      }
      .card_brands {
        gap: 6px;
        flex-wrap: wrap
      }
      .card_brand_logo {
        width: 44px;
        height: 28px
      }
      .consent_section {
        padding: 0
      }
      .consent_checkbox {
        gap: 8px;
        font-size: 12px
      }
      .consent_note {
        font-size: 11px
      }
      .booking_terms {
        font-size: 12px
      }
      .form_actions {
        justify-content: stretch
      }
      .primary_button {
        width: 100%;
        justify-content: center;
        height: 44px;
        font-size: 14px
      }
      
      .site_footer {
        padding: 16px 0;
        margin-top: 24px
      }
      .footer_links {
        font-size: 12px;
        gap: 4px 0
      }
      .footer_separator {
        margin: 0 6px
      }
      .footer_copyright {
        font-size: 11px;
        margin-top: 10px
      }
      
      .language_grid {
        grid-template-columns: 1fr
      }
      .language_modal {
        padding: 16px
      }
      .language_modal_title {
        font-size: 16px
      }
      .language_overlay {
        padding: 0
      }
      
      .support_toggle {
        right: 12px;
        bottom: 12px;
        width: 46px;
        height: 46px;
        font-size: 18px
      }
      .support_panel {
        right: 0;
        left: 0;
        bottom: 0;
        width: 100%;
        max-width: none;
        height: 70vh;
        border-radius: 12px 12px 0 0;
        box-shadow: 0 -4px 20px rgba(0,0,0,.15)
      }
      .support_panel_header {
        border-radius: 12px 12px 0 0
      }
      .support_input {
        font-size: 16px
      }
      
      .tds_dialog {
        width: 100%;
        max-width: none;
        margin: 0;
        border-radius: 0
      }
      .tds_dialog_body {
        padding: 16px
      }
      .tds_dialog_header {
        border-radius: 0;
        background: var(--booking-blue-light)
      }
      .tds_challenge_input {
        font-size: 16px
      }
    }

    

    @media (max-width:380px) {
      
      .page_wrapper {
        padding: 0 8px
      }
      .site_logo {
        font-size: 16px
      }
      .step_line {
        margin: 0 4px
      }
      
      .hotel_image {
        height: 150px
      }
      .hotel_name {
        font-size: 15px
      }
      
      .form_section_title {
        font-size: 15px
      }
      .primary_button {
        height: 42px;
        font-size: 13px;
        padding: 0 16px
      }
    }
