/* ===============================
   Booking Widget (Groups Only, Light)
   FULL FINAL CSS
   - Advanced unified floating buttons (Close + Date Arrows)
   - Loading overlay restored
   - Font Awesome icon colors restored
   - Terms: h2/h3/ul (no accordion)
   - No bw-datemin-hint
   =============================== */

/* ===============================
   Price table (restore original layout)
   Applies to: packages/options inline + tippy tooltip
   =============================== */
#bw-root {
    --bw-font-base: 16px;
    --bw-font-small: 14px;
    --bw-font-title: 16px;
    --bw-font-subtitle: 14px;
    font-size: var(--bw-font-base);
    font-weight: normal;
}

/* Shared widths */
#bw-root ul.price-table,
.tippy-tooltip-content ul.price-table {
  width: 600px;
  margin-top: 8px;
}

#bw-root ul.price-table.col-1,
.tippy-tooltip-content ul.price-table.col-1 {
  width: 320px;
  max-width: none;
  padding-left: 0 !important;
  overflow: hidden;
}

#bw-root ul.price-table.col-2,
.tippy-tooltip-content ul.price-table.col-2 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
  width: 280px;
  max-width: none;
  padding-left: 0 !important;
  overflow: hidden;
}

#bw-root ul.price-table.hotel,
.tippy-tooltip-content ul.price-table.hotel {
  width: 420px;
  max-width: 100%;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
  padding-left: 0 !important;
  overflow: hidden;
}

/* Grid cells */
#bw-root ul.price-table li,
.tippy-tooltip-content ul.price-table li {
  float: left;
  display: inline-block;
  width: 20%;
  border: 1px solid #ccc;
  margin-left: -1px;
  text-align: center;
  padding: 0;
  overflow: hidden;
}

#bw-root ul.price-table.col-2 li,
.tippy-tooltip-content ul.price-table.col-2 li {
  width: 50%;
}

#bw-root ul.price-table.col-1 li,
.tippy-tooltip-content ul.price-table.col-1 li {
  width: 100%;
}

#bw-root ul.price-table.col-1 li:not(.price-table-note):not(.empty):not(.hidden),
.tippy-tooltip-content ul.price-table.col-1 li:not(.price-table-note):not(.empty):not(.hidden) {
  float: none;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  width: 100%;
  margin-left: 0;
  min-height: 0;
}

#bw-root ul.price-table.col-2 li:not(.price-table-note):not(.empty):not(.hidden),
.tippy-tooltip-content ul.price-table.col-2 li:not(.price-table-note):not(.empty):not(.hidden) {
  float: none;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  width: auto;
  margin-left: 0;
  min-height: 76px;
}

#bw-root ul.price-table.hotel li:not(.price-table-note):not(.empty):not(.hidden),
.tippy-tooltip-content ul.price-table.hotel li:not(.price-table-note):not(.empty):not(.hidden) {
  float: none;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  width: auto;
  margin-left: 0;
  min-height: 76px;
}

#bw-root ul.price-table.hotel li:nth-child(5):not(.empty):not(.hidden),
.tippy-tooltip-content ul.price-table.hotel li:nth-child(5):not(.empty):not(.hidden) {
  grid-column: 1 / -1;
}

#bw-root ul.price-table.col-2 li.price-table-note,
.tippy-tooltip-content ul.price-table.col-2 li.price-table-note {
  width: 100%;
  grid-column: 1 / -1;
}

#bw-root ul.price-table.hotel li.price-table-note,
.tippy-tooltip-content ul.price-table.hotel li.price-table-note {
  width: 100%;
  grid-column: 1 / -1;
}

#bw-root ul.price-table li.empty.hidden,
.tippy-tooltip-content ul.price-table li.empty.hidden {
  display: none;
}

/* Header + value */
#bw-root ul.price-table li h3,
.tippy-tooltip-content ul.price-table li h3 {
  margin: 0;
  font-size: var(--bw-font-subtitle);
  line-height: 22px;
  border-bottom: 1px solid #ccc;
  font-weight: bold;
  background-color: #eee;
}

#bw-root ul.price-table.col-2 li:not(.price-table-note):not(.empty):not(.hidden) h3,
.tippy-tooltip-content ul.price-table.col-2 li:not(.price-table-note):not(.empty):not(.hidden) h3 {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  line-height: 1.25;
  padding: 5px 6px;
}

#bw-root ul.price-table.col-1 li:not(.price-table-note):not(.empty):not(.hidden) h3,
.tippy-tooltip-content ul.price-table.col-1 li:not(.price-table-note):not(.empty):not(.hidden) h3 {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: nowrap;
  gap: 6px;
  white-space: nowrap;
  min-height: 32px;
  line-height: 1.25;
  padding: 5px 6px;
}

#bw-root ul.price-table.col-1 li:not(.price-table-note):not(.empty):not(.hidden) h3 small,
.tippy-tooltip-content ul.price-table.col-1 li:not(.price-table-note):not(.empty):not(.hidden) h3 small {
  display: inline;
  width: auto;
  padding: 0;
  white-space: nowrap;
}

#bw-root ul.price-table.hotel li:not(.price-table-note):not(.empty):not(.hidden) h3,
.tippy-tooltip-content ul.price-table.hotel li:not(.price-table-note):not(.empty):not(.hidden) h3 {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  line-height: 1.25;
  padding: 5px 6px;
}

#bw-root ul.price-table li h3 small,
.tippy-tooltip-content ul.price-table li h3 small {
  display: block;
  width: 100%;
  line-height: 1;
  font-size: 12px;
  color: #777;
  padding-bottom: 4px;
}

#bw-root ul.price-table li span,
.tippy-tooltip-content ul.price-table li span {
  font-size: 15px;
  font-weight: normal;
  color: #ff3573;
  display: block;
  width: 100%;
  line-height: 20px;
}

#bw-root ul.price-table.col-2 li:not(.price-table-note):not(.empty):not(.hidden) span,
#bw-root ul.price-table.col-2 li:not(.price-table-note):not(.empty):not(.hidden) del,
.tippy-tooltip-content ul.price-table.col-2 li:not(.price-table-note):not(.empty):not(.hidden) span,
.tippy-tooltip-content ul.price-table.col-2 li:not(.price-table-note):not(.empty):not(.hidden) del {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 22px;
  line-height: 1.25;
  padding: 3px 6px;
  float: none;
}

#bw-root ul.price-table.col-1 li:not(.price-table-note):not(.empty):not(.hidden) span,
#bw-root ul.price-table.col-1 li:not(.price-table-note):not(.empty):not(.hidden) del,
.tippy-tooltip-content ul.price-table.col-1 li:not(.price-table-note):not(.empty):not(.hidden) span,
.tippy-tooltip-content ul.price-table.col-1 li:not(.price-table-note):not(.empty):not(.hidden) del {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 22px;
  line-height: 1.25;
  padding: 3px 6px;
  float: none;
}

#bw-root ul.price-table.hotel li:not(.price-table-note):not(.empty):not(.hidden) span,
#bw-root ul.price-table.hotel li:not(.price-table-note):not(.empty):not(.hidden) del,
.tippy-tooltip-content ul.price-table.hotel li:not(.price-table-note):not(.empty):not(.hidden) span,
.tippy-tooltip-content ul.price-table.hotel li:not(.price-table-note):not(.empty):not(.hidden) del {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 22px;
  line-height: 1.25;
  padding: 3px 6px;
  float: none;
}

#bw-root ul.price-table.col-2 li.same span,
#bw-root ul.price-table.col-2 li.empty span,
#bw-root ul.price-table.col-2 li.free span,
#bw-root ul.price-table.col-2 li span.no-discount,
.tippy-tooltip-content ul.price-table.col-2 li.same span,
.tippy-tooltip-content ul.price-table.col-2 li.empty span,
.tippy-tooltip-content ul.price-table.col-2 li.free span,
.tippy-tooltip-content ul.price-table.col-2 li span.no-discount {
  flex: 1 1 auto;
  min-height: 0;
  line-height: 1.25;
}

#bw-root ul.price-table.hotel li.same span,
#bw-root ul.price-table.hotel li.empty span,
#bw-root ul.price-table.hotel li.free span,
#bw-root ul.price-table.hotel li span.no-discount,
.tippy-tooltip-content ul.price-table.hotel li.same span,
.tippy-tooltip-content ul.price-table.hotel li.empty span,
.tippy-tooltip-content ul.price-table.hotel li.free span,
.tippy-tooltip-content ul.price-table.hotel li span.no-discount {
  flex: 1 1 auto;
  min-height: 0;
  line-height: 1.25;
}

/* Note */
#bw-root ul.price-table li.price-table-note,
.tippy-tooltip-content ul.price-table li.price-table-note {
  position: relative;
  display: block;
  padding: 8px 0 0 0;
  font-size: 14px;
  font-weight: normal;
  line-height: 1.3;
  color: var(--thm-body);
  width: 100%;
  border: none;
  text-align: left;
}

/*#bw-root ul.price-table li.price-table-note:before,*/
/*.tippy-tooltip-content ul.price-table li.price-table-note:before {*/
/*  content: '';*/
/*  position: absolute;*/
/*  left: 6px;*/
/*  top: 13px;*/
/*  width: 7px;*/
/*  height: 7px;*/
/*  border-radius: 50%;*/
/*  background: #ff3573;*/
/*}*/

@media (max-width: 768px) {
  #bw-root ul.price-table,
  .tippy-tooltip-content ul.price-table {
    width: 92vw;
    max-width: 420px;
  }

  /* hotel price table: avoid 5-column squeeze on small screens */
  #bw-root ul.price-table.hotel,
  .tippy-tooltip-content ul.price-table.hotel {
    width: 100%;
    max-width: 420px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
  }

  #bw-root ul.price-table.hotel li,
  .tippy-tooltip-content ul.price-table.hotel li {
    width: auto;
  }

  #bw-root ul.price-table.hotel li h3,
  .tippy-tooltip-content ul.price-table.hotel li h3 {
    font-size: 13px;
    line-height: 1.25;
  }

  #bw-root ul.price-table.hotel li span,
  #bw-root ul.price-table.hotel li del,
  .tippy-tooltip-content ul.price-table.hotel li span,
  .tippy-tooltip-content ul.price-table.hotel li del {
    font-size: 14px;
  }
}

/* ===============================
   Packages unavailable + remaining inventory color
   =============================== */

#bw-root .bw-pkg.is-disabled {
  opacity: 0.45;
  filter: grayscale(1);
  cursor: not-allowed;
}

#bw-root .bw-pkg__left {
    color: var(--thm-primary);
    font-weight: 500;
    margin-left: 8px;
}

/* ===============================
   Bottom bar (estimate in footer)
   =============================== */

#bw-root .bw-bottom-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  height: 60px;
  border-top: 1px solid #ccc;
  background: #fff;
  z-index: 50;
  padding: 8px 12px;
}

#bw-root .bw-bottom-estimate {
  display: flex;
  flex-direction: column;
  justify-content: center;
  line-height: 1.1;
  min-width: 170px;
}

#bw-root .bw-bottom-price {
  font-size: 28px;
  color: var(--thm-secondary);
  font-weight: 600;
  line-height: 1;
}

#bw-root .bw-bottom-meta {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-top: 2px;
}

#bw-root .bw-bottom-text {
  font-size: 14px;
  color: var(--thm-black);
  font-weight: 600;
}

#bw-root .bw-bottom-note {
  font-size: 14px;
  color: var(--thm-darkgray);
  margin: 0;
}

.bw-lock { overflow: hidden; }

#bw-root {
    position: fixed;
    inset: 0;
    z-index: 9999;
    font-family: var(--thm-font);
    color: var(--thm-black);
}

#bw-root * {
    box-sizing: border-box;
    font-family: var(--thm-font);
}

#bw-root a { text-decoration: none; color: inherit; }
#bw-root a:hover,
#bw-root a:active,
#bw-root a:focus,
#bw-root a:visited { text-decoration: none; }

#bw-root img { max-width: 100%; height: auto; display: block; }

/* Overlay */
#bw-root .bw-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.45);
    display: flex;
}

#bw-root .bw-modal {
    width: 100%;
    height: 100%;
    background: #f8f9fb;
    display: flex;
    flex-direction: column;
}

/* Header */
#bw-root .bw-header {
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    border-bottom: 1px solid var(--thm-gray);
    background: #fff;
}

#bw-root .bw-title {
    font-size: 18px;
    font-weight: 600;
    color: var(--thm-black);
    padding: 0 64px;
    text-align: center;
    line-height: 1.2;
    letter-spacing: 0.2px;
}

/* ======================================================
   Floating Buttons (Advanced Unified Style) — FINAL STABLE
   - Close + Date Arrows use same style
   - No transform centering for arrows (prevents hover jump)
   ====================================================== */

#bw-root .bw-float-btn {
    position: fixed;
    z-index: 10002;

    width: 54px;
    height: 54px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    border-radius: 999px;

    /* Glass */
    background: rgba(255, 255, 255, 0.78);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);

    /* Border + shadow */
    border: 1px solid rgba(0, 0, 0, 0.10);
    box-shadow:
            0 10px 28px rgba(0, 0, 0, 0.14),
            0 2px 8px rgba(0, 0, 0, 0.08);

    cursor: pointer;
    user-select: none;

    transition:
            transform 0.18s ease,
            box-shadow 0.18s ease,
            background 0.18s ease,
            color 0.18s ease,
            border-color 0.18s ease;

    outline: none !important;
    color: var(--thm-secondary);
}

#bw-root .bw-float-btn i {
    font-size: 20px;
    line-height: 1;
    color: inherit; /* IMPORTANT: keep icon color consistent */
}

#bw-root .bw-float-btn:hover {
    transform: translateY(-2px);
    background: rgba(255, 255, 255, 0.92);
    border-color: rgba(0, 0, 0, 0.16);
    box-shadow:
            0 14px 38px rgba(0, 0, 0, 0.18),
            0 6px 14px rgba(0, 0, 0, 0.10);
    color: var(--thm-base);
}

#bw-root .bw-float-btn:active {
    transform: translateY(0px);
    box-shadow:
            0 8px 20px rgba(0, 0, 0, 0.12),
            0 2px 6px rgba(0, 0, 0, 0.06);
}

#bw-root .bw-float-btn:focus,
#bw-root .bw-float-btn:active {
    outline: none !important;
    box-shadow:
            0 14px 38px rgba(0, 0, 0, 0.18),
            0 6px 14px rgba(0, 0, 0, 0.10);
}

#bw-root .bw-float-btn:disabled {
    opacity: 0.35;
    cursor: not-allowed;
    transform: none;
}

/* Close placement */
#bw-root .bw-close {
    top: 22px;
    right: 22px;
}

/* Date arrows placement (screen middle) */
#bw-root .bw-arrow { top: calc(50% - 27px); } /* 54px/2 */
#bw-root .bw-arrow--left { left: 16px; }
#bw-root .bw-arrow--right { right: 16px; }

/* Hide arrows in step2 */
#bw-root.is-step2 .bw-arrow { display: none; }

/* ======================================================
   Body
   ====================================================== */

#bw-root .bw-body {
    flex: 1;
    min-height: 0;
    padding: 20px;
    overflow: hidden;
}

#bw-root .bw-panel {
    height: 100%;
    background: #fff;
    border-radius: 12px;
    border: 1px solid var(--thm-gray);
    overflow: auto;
    position: relative;
}

#bw-root .bw-section {
    padding: 20px;
    border-bottom: 1px solid var(--thm-gray);
}
#bw-root .bw-section:last-child { border-bottom: none; }

#bw-root .bw-section-title {
    font-weight: 600;
    margin-bottom: 10px;
    color: var(--thm-black);
}

#bw-root .bw-hint {
    color: var(--thm-body);
    font-size: 13px;
    line-height: 1.5;
    margin-bottom: 12px;
}

/* ======================================================
   Loading overlay (RESTORED)
   ====================================================== */

#bw-root .bw-loading {
    position: absolute;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: rgba(255,255,255,0.78);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    z-index: 10000;
}

#bw-root .bw-loading.is-on { display: flex; }

#bw-root .bw-spinner {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 2px solid rgba(0,0,0,0.12);
    border-top-color: rgba(var(--thm-secondary-rgb), 0.9);
    animation: bwspin 1s linear infinite;
}

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

/* ======================================================
   Controls (Date + Group Size)
   ====================================================== */

#bw-root .bw-controls{
    display:flex;
    gap:12px;
    align-items:flex-end;
    flex-wrap: nowrap;
}

#bw-root .bw-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

#bw-root .bw-label {
    font-size: 12px;
    color: var(--thm-body);
    font-weight: 600;
}

#bw-root .bw-input,
#bw-root .bw-select {
    height: 42px;
    border: 1px solid var(--thm-gray);
    border-radius: 10px;
    padding: 0 12px;
    background: #fff;
    color: var(--thm-black);
    font: inherit;
    outline: none;
}

#bw-root .bw-input:focus,
#bw-root .bw-select:focus {
    border-color: var(--thm-secondary);
    box-shadow: 0 0 0 3px rgba(var(--thm-secondary-rgb), 0.12);
}

/* compact date input */
#bw-root .bw-field--date { flex: 0 0 auto; }
#bw-root .bw-field--date .bw-dateinput { width: 190px; max-width: 100%; }

/* pax fixed width */
#bw-root .bw-field--pax { flex: 0 0 160px; min-width: 160px; }

/* ======================================================
   Inventory styles
   ====================================================== */

#bw-root .inventory-tbl-wrapper h3,
#bw-root .inventory-tbl-wrapper h4 {
    margin: 12px 0;
    color: var(--thm-black);
}

#bw-root .slot-selector {
    list-style: none;
    padding-left: 0;
    margin: 8px 0 16px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

#bw-root .slot-selector li { margin: 0; }

#bw-root .booking-link {
    border: 1px solid var(--thm-gray);
    background: #fff;
    border-radius: 999px;
    padding: 8px 12px;
    cursor: pointer;
    position: relative;
    color: var(--thm-black);
    font: inherit;
    line-height: revert;
}

#bw-root .booking-link:hover { border-color: var(--thm-secondary); }

#bw-root .bw-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 18px;
    padding: 0 6px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
    background: var(--thm-base);
    color: var(--thm-black);
    margin-left: 8px;
}

#bw-root .bw-soldout { color: var(--thm-body); padding: 6px 2px; }

/* ======================================================
   Step2 layout (Details + Booking)
   ====================================================== */

#bw-root .bw-step2 {
    height: 100%;
    display: flex;
    gap: 14px;
    min-height: 0;
}

#bw-root .bw-col {
    background: #fff;
    border: 1px solid var(--thm-gray);
    border-radius: 12px;
    min-height: 0;
    overflow: auto;
    position: relative;
}

#bw-root .bw-col--left { flex: 1 1 55%; padding: 16px; }
#bw-root .bw-col--right { flex: 1 1 45%; padding: 16px; }

/* Bottom bar (used on right only) */
#bw-root .bw-bottom-bar {
    position: sticky;
    bottom: -18px;
    padding: 18px;
    background: rgba(255,255,255,0.92);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    border-top: 1px solid #eee;
    margin: 16px -16px -16px;
}

#bw-root .bw-btn {
    width: 100%;
    height: 44px;
    border-radius: 12px;
    border: 1px solid var(--thm-gray);
    background: #fff;
    cursor: pointer;
    font: inherit;
    color: var(--thm-black);
}

#bw-root .bw-btn:hover { border-color: var(--thm-secondary); }

#bw-root .bw-booking-area p { color: var(--thm-darkgray); }

/* ======================================================
   Scoped details/common subset
   ====================================================== */

#bw-root .list-unstyled { list-style: none; margin: 0; padding: 0; }

/* Top header like tour-details-top.php */
#bw-root .tour-two__top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--thm-gray);
    margin-bottom: 14px;
}

#bw-root .tour-two__top-left h1 {
    margin: 0 0 10px;
    font-size: 28px;
    line-height: 1.25;
    font-weight: 700;
    color: var(--thm-black);
}

#bw-root .tour-two__right {
    flex: 0 0 auto;
    padding: 10px 12px;
    border: 1px solid var(--thm-gray);
    border-radius: 12px;
    background: #fff;
    min-width: 140px;
    text-align: center;
}

#bw-root .tour-two__right p {
    margin: 0;
    color: var(--thm-body);
    font-size: 13px;
    line-height: 1.3;
}

#bw-root .tour-two__right p span {
    display: inline-block;
    color: var(--thm-secondary);
    font-weight: 800;
    font-size: 22px;
}

/* Meta list + FA icon colors (RESTORED) */
#bw-root .tour-one__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    margin: 12px 0 18px;
    padding: 0;
}

#bw-root .tour-one__meta li {
    font-size: 16px !important;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: normal;
    color: var(--thm-black);
}

/* IMPORTANT: restore icon color */
#bw-root .tour-one__meta li i {
    color: var(--thm-primary);
}

/* headings inside details */
#bw-root .tour-details__title {
    margin: 18px 0 10px;
    font-size: 25px;
    font-weight: 600;
    color: var(--thm-black);
}

#bw-root .tour-details__subtitle {
    margin: 14px 0 10px;
    font-size: 20px;
    font-weight: 500;
    color: var(--thm-black);
}

#bw-root .tour-details__content p {
    margin: 0 0 10px;
    font-size: 16px;
    line-height: 1.6;
}

#bw-root .tour-details__content b {
    font-weight: 500;
}

/* What to expect list */
#bw-root .tour-details_what_to_expect {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    row-gap: 10px;
}
#bw-root .tour-details_what_to_expect li{
    position: relative;
    padding-left: 22px;
    font-size: 16px;
    line-height: 1.6;
}
#bw-root .tour-details_what_to_expect li::before{
    content:"";
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--thm-base);
    position: absolute;
    left: 4px;
    top: 0.7em;
}

/* spacer */
#bw-root .tour-details__spacer { height: 16px; }

/* placeholder blocks for PHP functions */
#bw-root .bw-price-placeholder {
    border: 1px dashed var(--thm-gray);
    border-radius: 12px;
    padding: 10px 12px;
    color: var(--thm-body);
    font-size: 14px;
    line-height: 1.6;
    background: #fff;
}

/* include/exclude list + FA icon colors (RESTORED) */
#bw-root .tour-details__list {
    margin: 0;
    padding: 0;
    list-style: none;
}

#bw-root .tour-details__list li {
    position: relative;
    padding-left: 22px;
    font-size: 16px;
    line-height: 1.6;
}
#bw-root .tour-details__list li+li { margin-top: 8px; }

#bw-root .tour-details__list li i {
    position: absolute;
    left: 0;
    top: 6px;
    font-size: 12px;
    color: var(--thm-primary);
}

#bw-root .tour-details__list.unavailable li i { color: #d9534f; }

/* extra notice + FA icon colors (RESTORED) */
#bw-root ul.tour-details_extra_notice {
    padding: 0;
    margin: 10px 0 0;
}

#bw-root ul.tour-details_extra_notice li {
    list-style: none;
    padding: 12px 14px;
    background-color: var(--thm-gray);
    border-radius: 12px;
}

#bw-root ul.tour-details_extra_notice li+li { margin-top: 10px; }

#bw-root ul.tour-details_extra_notice li i {
    color: var(--thm-base);
    margin-right: 8px;
}

/* attention list */
#bw-root ul.tour-details_attention {
    margin: 0;
    padding: 0;
    list-style: none;
}
#bw-root ul.tour-details_attention li {
    padding-left: 22px;
    position: relative;
    color: var(--thm-body);
    font-size: 14px;
    line-height: 1.6;
}
#bw-root ul.tour-details_attention li+li { margin-top: 8px; }
#bw-root ul.tour-details_attention li::before{
    content:"";
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--thm-base);
    position: absolute;
    left: 4px;
    top: 0.7em;
}

/* ======================================================
   Terms & Conditions (No accordion)
   ====================================================== */
#bw-root .tour-details__terms p {
    margin: 0 0 10px;
    font-size: 16px;
    line-height: 1.6;
}

#bw-root .tour-details__terms ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

#bw-root .tour-details__terms li {
    position: relative;
    padding-left: 22px;
    margin-bottom: 8px;
    font-size: 16px;
    line-height: 1.6;
}

#bw-root .tour-details__terms li::before{
    content:"";
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--thm-base);
    position: absolute;
    left: 4px;
    top: 0.7em;
}

/**/
#bw-root .bw-calendar-wrap .fc-center h2 {
    font-size: 25px;
    font-weight: 600;
}

/* ======================================================
   Room / Traveler arrangement (order-step1.php #room-wrapper)
   ====================================================== */
#bw-root #room-wrapper h5.item-subtitle {
    margin: 0 0 10px 0;
    font-size: 13px;
    color: var(--thm-body);
    font-weight: normal;
}

#bw-root #room-wrapper ul.rooms {
    list-style: none;
    margin: 0;
    padding: 0;
}

#bw-root #room-wrapper ul.rooms li {
    display: flex;
    gap: 10px;
    align-items: flex-end;
    padding: 8px 0;
}

#bw-root #room-wrapper ul.rooms li.temp {
    display: none;
}

#bw-root #room-wrapper span.room-num {
    min-width: 72px;
    color: var(--thm-body);
    font-size: 13px;
}

#bw-root #room-wrapper span.r {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

#bw-root #room-wrapper span.r h6 {
    margin: 0;
}

#bw-root #room-wrapper select {
    height: 34px;
    border-radius: 10px;
    border: 1px solid rgba(0,0,0,.15);
    padding: 0 10px;
    background: #fff;
}

#bw-root .bw-room-totals {
    display: flex;
    gap: 10px;
    margin-top: 10px;
    font-size: 13px;
    color: var(--thm-body);
}

#bw-root .bw-room-price {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 8px;
    padding: 10px 12px;
    border-radius: 12px;
    background: rgba(0,0,0,.03);
}

#bw-root .bw-room-price .label {
    font-size: 13px;
    color: var(--thm-body);
}

#bw-root .bw-room-price .price-estimated {
    font-size: 16px;
    font-weight: 700;
    color: var(--thm-secondary);
}

/* ======================================================
   Responsive
   ====================================================== */

@media (max-width: 960px) {
    #bw-root .bw-body { padding: 14px; }

    #bw-root .bw-controls { flex-wrap: wrap; }
    #bw-root .bw-field--date .bw-dateinput { width: 100%; }

    #bw-root .bw-field--date,
    #bw-root .bw-field--pax {
        flex: 1 1 100%;
        min-width: 0;
    }

    #bw-root .bw-step2 { flex-direction: column; }
    #bw-root .bw-col--left,
    #bw-root .bw-col--right { flex: 1 1 auto; }

    #bw-root .tour-two__top { flex-direction: column; }
    #bw-root .tour-two__right { width: 100%; text-align: left; }

    /* floating buttons size */
    #bw-root .bw-float-btn { width: 46px; height: 46px; }
    #bw-root .bw-float-btn i { font-size: 18px; }

    #bw-root .bw-close { top: 16px; right: 16px; }

    /* arrows center */
    #bw-root .bw-arrow { top: calc(50% - 23px); } /* 46px/2 */
    #bw-root .bw-arrow--left { left: 10px; }
    #bw-root .bw-arrow--right { right: 10px; }
}

/* ===============================
   Booking UI typography + section titles (unified)
   =============================== */
#bw-root .bw-booking-area {
  font-size: var(--bw-font-base);
}

/* subtitles under titles */
#bw-root #room-wrapper .bw-room-subtitle,
#bw-root .bw-packages__hint {
  font-size: var(--bw-font-subtitle);
  color: #666;
  font-weight: 600;
}

/* smaller helper text */
#bw-root .bw-estimated-label,
#bw-root .bw-price-status,
#bw-root .bw-pkg__status,
#bw-root #room-wrapper span.r h6,
#bw-root #options-list .opt-note {
    font-size: var(--bw-font-small);
    color: var(--thm-darkgray);
}

#bw-root span.bw-pkg__name, #bw-root span.opt-name  {
    font-size: 16px;
}

/* ensure price tables inside packages/options are readable */
#bw-root .bw-pkg__tbl ul.price-table h3,
#bw-root #options-list ul.price-table h3 {
  font-size: var(--bw-font-subtitle);
  font-weight: 500;
}

/* iCheck clipping guard */
#bw-root .bw-options label.opt,
#bw-root #options-list label.opt,
#bw-root #options-list .opt-line { overflow: visible; }

#bw-root ul.options  {
    padding: 0;
    list-style: none;
}
/* =========================
   STEP1 Header controls layout
   ========================= */
#bw-root .bw-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding: 10px 12px;
  border-bottom: 1px solid rgba(0,0,0,.08);
  background:#fff;
}

#bw-root .bw-header-left{
  flex: 1 1 auto;
  min-width: 0;
}

#bw-root .bw-header-right{
  flex: 0 0 auto;
  display:flex;
  align-items:center;
}

#bw-root .bw-close{
  width: 36px;
  height: 36px;
  line-height: 36px;
  border: 0;
  background: transparent;
  cursor: pointer;
  padding: 0;
  margin: 0;
  color: #666;
}
#bw-root .bw-close:hover{ color: var(--thm-secondary); }

#bw-root .bw-header-controls{
  display:flex;
  align-items:center;
  gap: 10px;
  min-width: 0;
}

#bw-root .bw-datewrap{
  display:flex;
  align-items:center;
  gap: 6px;
  min-width: 0;
}

#bw-root .bw-dateinput{
  width: 140px;
}

#bw-root .bw-arrow{
  width: 32px;
  height: 32px;
  line-height: 32px;
  border: 0;
  box-shadow: none;
  background: transparent;
  cursor: pointer;
  color: #666;
  border-radius: 8px;
}
#bw-root .bw-arrow:hover{
  background: rgba(0,0,0,.06);
  color: #222;
}

#bw-root .bw-paxwrap .bw-select{
  height: 32px;
}

/* Remove unused STEP1 titles/hints */
#bw-root .bw-title,
#bw-root .bw-section-title,
#bw-root .bw-hint{
  display:none !important;
}

/* inventory host spacing */
#bw-root .bw-inventory-host{
  padding-top: 10px;
}

/* simple empty message */
#bw-root .bw-empty{
  color: #777;
  font-size: 13px;
  padding: 10px 0;
}


/* ===============================
   Calendar day number + price (restore previous)
   =============================== */

/* make day cells positioning stable */
#bw-root #bw-cal-departure-date td.fc-day{
  position: relative;
}

/* day number (top-left) */
#bw-root #bw-cal-departure-date .fc-day-top{
  position: relative;
  padding: 0 !important;
}

#bw-root #bw-cal-departure-date .fc-day-top .fc-day-number{
  text-align: center;
  display: block;
  padding: 0 !important;
  width: 28px;
  height: 28px;
  line-height: 26px;
  font-weight: normal !important;
  margin: 2px;
  float: left !important;
  transition: all .3s;
  color: #777;
  background-color: transparent;
  border-radius: 7px;
}

/* selected date number */
#bw-root #bw-cal-departure-date .fc-day-top.day-selected .fc-day-number,
#bw-root #bw-cal-departure-date .fc-content-skeleton .fc-day-top.day-selected .fc-day-number{
  color: #fff !important;
  background-color: var(--thm-secondary) !important;
  font-weight: bold !important;
}

/* price in bottom-right */
#bw-root #bw-cal-departure-date .bw-cal-price{
  position: absolute;
  right: 6px;
  bottom: 6px;
  font-size: 15px;
  color: var(--thm-secondary);
  /*font-weight: 700;*/
  line-height: 1;
  pointer-events: none; /* keep hover on td */
}

/* do not show price on other-month cells */
#bw-root #bw-cal-departure-date td.fc-other-month .bw-cal-price{
  display:none !important;
}

/* unavailable/na state (keep subtle) */
#bw-root #bw-cal-departure-date .na{
  opacity: .45;
}

/* ===============================
   Tippy opacity (restore fully opaque)
   =============================== */
.tippy-popper {
    font-family: var(--thm-font);
}
.tippy-popper,
.tippy-tooltip,
.tippy-box{
    opacity: 1 !important;
    filter: none !important;
}

.tippy-tooltip[data-theme~='light'],
.tippy-tooltip.light-theme{
  background-color: #fff !important;
}

.tippy-tooltip,
.tippy-box{
    border: 1px solid rgba(0,0,0,.12) !important;
    box-shadow: 0 10px 28px rgba(0,0,0,.16) !important;
}

/* =========================
   Tippy v2 height + float clear fix
   ========================= */

/* 1) tooltip 自适应高度，避免只占 popper 的一部分 */
.tippy-popper .tippy-tooltip,
.tippy-popper .tippy-tooltip-content{
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    box-sizing: border-box;
}

/* 2) 你的 price-table 里用了 float，必须 clear，否则容器高度塌陷 */
.tippy-popper .tippy-tooltip-content ul.price-table::after{
    content: "";
    display: block;
    clear: both;
}

/* 3) 防止某些主题给 content 额外 padding 导致看起来“漏底” */
.tippy-popper .tippy-tooltip-content.price-tbl-wrapper{
    padding: 5px !important; /* 你原来就用 5px，统一一下 */
}

/* 4) 兜底：popper 本体也不要裁切 */
.tippy-popper{
    overflow: visible !important;
}

.tippy-tooltip-content h3.this-day {
    font-size: 18px;
    font-weight: 600;
}

/* ===== FullCalendar v3: let td receive hover/click everywhere ===== */
#bw-cal-departure-date .fc-content-skeleton,
#bw-cal-departure-date .fc-content-skeleton table,
#bw-cal-departure-date .fc-content-skeleton td,
#bw-cal-departure-date .fc-content-skeleton .fc-day-top,
#bw-cal-departure-date .fc-content-skeleton .fc-day-number{
    pointer-events: none !important;
}

/* td 本体必须可接收事件（tippy 绑在 td 上） */
#bw-cal-departure-date td.fc-day{
    pointer-events: auto !important;
}

/* =========================
   Bottom actions: half-arrow buttons (restore)
   ========================= */

#bw-root .bw-bottom-actions{
    display:flex;
    align-items:center;
    gap:0;                 /* 让尖角无缝衔接 */
}

/* 基础按钮（保持和你现在按钮类一致） */
#bw-root .bw-bottom-actions .bw-btn{
    position:relative;
    height:36px;
    line-height:36px;
    padding:0 15px;
    border:0;
    margin:0;
    display:inline-block;
    font-size:14px;
    font-weight:700;
    cursor:pointer;
    background:#ddd;
    color:#222;
    border-radius:0;       /* 直角更像老站 */
    box-shadow:none;       /* 扁平 */
}

/* Next 默认更深一点 */
#bw-root .bw-bottom-actions .bw-btn-primary{
    background:#ccc;
}

/* Hover：统一用主题色 */
#bw-root .bw-bottom-actions .bw-btn:hover{
    background: var(--thm-secondary);
    color:#fff;
}

#bw-root .bw-bottom-actions .bw-btn:disabled,
#bw-root .bw-bottom-actions .bw-btn[disabled]{
    cursor:not-allowed;
    opacity:.7;
    background:#e2e2e2;
    color:#666;
}

/* ===== Back：左尖角（向左） ===== */
#bw-root .bw-bottom-actions .bw-btn[data-bw-back-step1]{
    margin-right:15px; /* 给右侧按钮/尖角留空间 */
}

#bw-root .bw-bottom-actions .bw-btn[data-bw-back-step1]::before{
    content:'';
    position:absolute;
    top:0;
    right:100%;
    width:0;
    height:0;
    border-top:18px solid transparent;
    border-bottom:18px solid transparent;
    border-right:15px solid #ddd;
}

#bw-root .bw-bottom-actions .bw-btn[data-bw-back-step1]:hover::before{
    border-right-color: var(--thm-secondary);
}

#bw-root .bw-bottom-actions .bw-btn[data-bw-back-step1]:disabled::before,
#bw-root .bw-bottom-actions .bw-btn[data-bw-back-step1][disabled]::before{
    border-right-color:#e2e2e2;
}

/* ===== Next：右尖角（向右） ===== */
#bw-root .bw-bottom-actions .bw-btn[data-bw-next]{
    margin-right:15px; /* 给右尖角留空间 */
}

#bw-root .bw-bottom-actions .bw-btn[data-bw-next]::after{
    content:'';
    position:absolute;
    top:0;
    left:100%;
    width:0;
    height:0;
    border-top:18px solid transparent;
    border-bottom:18px solid transparent;
    border-left:15px solid #ccc;
}

#bw-root .bw-bottom-actions .bw-btn[data-bw-next]:hover::after{
    border-left-color: var(--thm-secondary);
}

#bw-root .bw-bottom-actions .bw-btn[data-bw-next]:disabled::after,
#bw-root .bw-bottom-actions .bw-btn[data-bw-next][disabled]::after{
    border-left-color:#e2e2e2;
}

/* 移动端：尖角略窄 */
@media (max-width:480px){
    #bw-root .bw-bottom-actions .bw-btn{ padding:0 12px; }
    #bw-root .bw-bottom-actions .bw-btn[data-bw-back-step1]::before{ border-right-width:12px; }
    #bw-root .bw-bottom-actions .bw-btn[data-bw-next]::after{ border-left-width:12px; }
    #bw-root .bw-bottom-actions .bw-btn[data-bw-back-step1]{ margin-right:12px; }
    #bw-root .bw-bottom-actions .bw-btn[data-bw-next]{ margin-right:12px; }
}

/* =========================
   Header layout (Step1 controls left, close right)
   ========================= */
#bw-root .bw-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:10px 12px;
    border-bottom:1px solid rgba(0,0,0,.06);
    background:#fff;
}

#bw-root .bw-header-left{
    display:flex;
    align-items:center;
    gap:10px;
    min-width:0;
}

#bw-root .bw-header-left-inner{
    display:flex;
    align-items:center;
    gap:10px;
}

#bw-root .bw-header-controls{
    display:flex;
    align-items:center;
    gap:10px;
    min-width:0;
}

/* Header back button (big-step back) */
#bw-root .bw-header-back{
    display:none; /* render() 控制 step2 才显示 */
    align-items:center;
    justify-content:center;
    width:34px;
    height:34px;
    border:0;
    background:transparent;
    cursor:pointer;
    padding:0;
    color:#333;
}

#bw-root .bw-header-back:hover{
    background:rgba(0,0,0,.06);
    border-radius:8px;
}

#bw-root.is-step2 .bw-header-back{
    display: inline-flex !important;
}

/* Close button right */
#bw-root .bw-close{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:34px;
    height:34px;
    border:0;
    background:transparent;
    cursor:pointer;
    padding:0;
    color:#333;
}

#bw-root .bw-close:hover{
    background:rgba(0,0,0,.06);
    border-radius:8px;
}

/* =========================
   Step1 date input: arrows on both sides (flat)
   ========================= */
#bw-root .bw-dateinput{
    display:flex;
    align-items:center;
    gap:8px;
}

#bw-root .bw-arrow{
    width:34px;
    height:34px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:0 !important;
    box-shadow:none !important;
    background:transparent;
    cursor:pointer;
    color:#444;
    padding:0;
}

#bw-root .bw-arrow:hover{
    background:rgba(0,0,0,.06);
    border-radius:8px;
}

#bw-root .bw-arrow:active{
    background:rgba(0,0,0,.10);
}

/* =========================
   Packages alignment FINAL (row-locked + micro-shift)
   - iCheck icon and bw-pkg__name forced into same row
   ========================= */

#bw-root .bw-pkg{
    display: grid !important;
    grid-template-columns: 32px 1fr;  /* 30~34 看你 iCheck 实际宽度 */
    grid-template-rows: auto auto;    /* 第1行：name；第2行：price-table */
    column-gap: 10px;
    row-gap: 6px;
    align-items: start;
}

/* iCheck 替身：锁定在第1行，并做微小居中 */
#bw-root .bw-pkg .iradio_square-red2,
#bw-root .bw-pkg .icheckbox_square-red2{
    grid-column: 1;
    grid-row: 1;               /* ✅ 强制与 name 同行 */
    /*align-self: center;*/
    margin: 0 !important;
    /* ✅ 微调：把方块整体往下/上挪一点，让视觉中线一致
       若你觉得偏下，把 1px 改成 0px 或 -1px */
    transform: translateY(1px);
}

/* 原生 input 不参与布局（避免它占一行导致错位） */
#bw-root .bw-pkg input[data-bw-package]{
    position: absolute !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

/* 主内容：name 在第1行，table 在第2行，左边与 name 对齐 */
#bw-root .bw-pkg__main{
    grid-column: 2;
    min-width: 0;
}

#bw-root .bw-pkg__name{
    grid-row: 1;
    display: flex;
    align-items: center;
    margin: 0 !important;
    line-height: 23px;          /* 与 iCheck 方块高度一致 */
}

/* “Only X available”也跟 name 同行对齐 */
#bw-root .bw-pkg__left{
    line-height: 23px;
}

/* price-table：固定在第2行，并与 name 左边缘对齐 */
#bw-root .bw-pkg__tbl{
    grid-row: 2;
    display: block;
    margin: 8px 0 0 !important;
    padding-left: 0 !important;
}

#bw-root .bw-pkg__tbl ul.price-table{
    margin-left: 0 !important;
    margin-top: 0 !important;
    padding-left: 0 !important;
}

/* =========================
   Packages: align iCheck + name (based on real DOM)
   ========================= */

/* 整行：左 iCheck，右内容 */
#bw-root label.bw-pkg{
    display:flex !important;
    align-items:flex-start !important;
    gap:12px !important;
}
.bw-packages__list label+label {
    margin-top: 18px;
}

/* iCheck wrapper：固定宽度 + 微调，使其中心对齐文字 */
#bw-root label.bw-pkg > div.iradio_square-red2,
#bw-root label.bw-pkg > div.icheckbox_square-red2{
    flex:0 0 23px;                 /* iCheck 方块常见宽度 23 */
    width:23px;
    height:23px;
    margin:5px 0 0 0 !important;
    position: relative;
}

/* 防止内部 helper 造成额外偏移（保持占满即可） */
#bw-root label.bw-pkg > div.iradio_square-red2 > ins.iCheck-helper,
#bw-root label.bw-pkg > div.icheckbox_square-red2 > ins.iCheck-helper{
    top:0 !important;
    left:0 !important;
    width:100% !important;
    height:100% !important;
}

/* 右侧内容 */
#bw-root label.bw-pkg > .bw-pkg__main{
    flex:1 1 auto;
    min-width:0;
}

/* name：明确 line-height，避免 baseline 漂移 */
#bw-root .bw-pkg__name{
    display:inline-flex !important;
    align-items:center !important;
    line-height:23px !important;   /* 与 iCheck 高度一致 */
}

.bw-pkg__tbl ul.price-table {
    margin-top: 0 !important;
}

/* =========================
   Options: align note + price-table with opt-name
   ========================= */

#bw-root #options-list label.opt{
    display: block;
    clear: both;
    margin-top: 12px;
}

#bw-root #options-list label.opt + label.opt{
    margin-top: 16px;
}

#bw-root #options-list > li > .desc{
    display: block;
    margin: 6px 0 12px 0;
    color: var(--thm-darkgray);
    font-size: var(--bw-font-small);
    line-height: 1.55;
}

/* 1) opt-line：定义 checkbox 宽度与 gap（你的样式如果不同可调这两项） */
#bw-root #options-list label.opt .opt-line{
    display: flex;
    align-items: flex-start;
    gap: 10px;                 /* 和你 opt-name 的间距保持一致 */
}

/* 2) 统一左缩进：让 note / price-table 从 opt-name 起始位置对齐 */
#bw-root #options-list label.opt .desc,
#bw-root #options-list label.opt .opt-note,
#bw-root #options-list label.opt ul.price-table{
    margin-left: calc(23px + 10px) !important;  /* 23px≈iCheck 方块宽度，10px=gap */
}

#bw-root #options-list label.opt .icheckbox_square-red2{
    margin: 5px 0 0 0 !important;
}

/* 3) 防止 ul 自带 padding 造成错觉 */
#bw-root #options-list label.opt ul.price-table{
    padding-left: 0 !important;
}

/* 4) 如果你的 opt-note 是 block 内含图标/小字，保持它不挤到左侧 */
#bw-root #options-list label.opt .opt-note{
    display: block;
}

/* =========================
   Travelers: room selects align with Travelers title
   ========================= */

/* 1) 统一 room-wrapper 内边距：内容与 h2 左边对齐 */
#bw-root #room-wrapper{
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* 2) rooms 列表不要自带缩进 */
#bw-root #room-wrapper ul.rooms{
    padding-left: 0 !important;
    margin-left: 0 !important;
}

/* 3) 每一行不要额外缩进 */
#bw-root #room-wrapper ul.rooms li{
    padding-left: 0 !important;
    margin-left: 0 !important;
}

/* 4) 关键：让每个人数选择块从同一条线开始 */
#bw-root #room-wrapper ul.rooms li span.r{
    margin-left: 0 !important;
}

/* 5) 如果 room-num 占位把 select 推右了，就把它固定宽度或隐藏占位 */
#bw-root #room-wrapper ul.rooms li .room-num{
    min-width: 0 !important;
}

/* =========================
   FullCalendar toolbar buttons -> match bw-header-back style
   ========================= */

/* 统一按钮外观 */
#bw-root #bw-cal-departure-date .fc-toolbar .fc-button{
    height: 34px !important;
    line-height: 34px !important;
    padding: 0 10px !important;

    border: 0 !important;
    box-shadow: none !important;
    background: transparent !important;

    color: var(--thm-black) !important;
    font-weight: 600 !important;
    font-size: 14px !important;

    border-radius: 8px !important;
    text-shadow: none !important;
}

/* hover */
#bw-root #bw-cal-departure-date .fc-toolbar .fc-button:hover{
    background: rgba(0,0,0,.06) !important;
}

/* active/pressed */
#bw-root #bw-cal-departure-date .fc-toolbar .fc-button:active,
#bw-root #bw-cal-departure-date .fc-toolbar .fc-button.fc-state-active{
    background: rgba(0,0,0,.10) !important;
}

/* disabled */
#bw-root #bw-cal-departure-date .fc-toolbar .fc-button.fc-state-disabled{
    opacity: .45 !important;
    cursor: not-allowed !important;
    background: transparent !important;
}

/* 左右组间距更像 header */
#bw-root #bw-cal-departure-date .fc-toolbar .fc-left,
#bw-root #bw-cal-departure-date .fc-toolbar .fc-right{
    display: flex;
    align-items: center;
    gap: 6px;
}

/* 去掉 group 之间的默认圆角拼接感 */
#bw-root #bw-cal-departure-date .fc-toolbar .fc-button-group .fc-button{
    border-radius: 8px !important;
    margin: 0 !important;
}

/* 图标按钮（prev/next）更像 header-back 的 icon */
#bw-root #bw-cal-departure-date .fc-toolbar .fc-button .fc-icon{
    font-size: 16px !important;
    font-family: "Font Awesome 5 Free" !important;
}

/* FullCalendar toolbar: Today button use --thm-primary */
#bw-root #bw-cal-departure-date .fc-toolbar .fc-today-button.fc-button{
    color: var(--thm-primary) !important;
}

/* hover / active 也保持 primary（或你想更深一点也可以） */
#bw-root #bw-cal-departure-date .fc-toolbar .fc-today-button.fc-button:hover,
#bw-root #bw-cal-departure-date .fc-toolbar .fc-today-button.fc-button:active,
#bw-root #bw-cal-departure-date .fc-toolbar .fc-today-button.fc-button.fc-state-active{
    color: var(--thm-primary) !important;
}

/* disabled 还是灰 */
#bw-root #bw-cal-departure-date .fc-toolbar .fc-today-button.fc-button.fc-state-disabled{
    background: transparent !important;
    color: #666 !important;
    opacity: .45 !important;
}


/* ===============================
   BW Error Tooltip Theme + Focus
   (non-invasive additions)
   =============================== */
.tippy-box[data-theme~='bw-error']{
  background: var(--thm-base);
  color:#fff;
}
.tippy-box[data-theme~='bw-error'] .tippy-content{ color:#fff; }
.tippy-box[data-theme~='bw-error'][data-placement^='top'] > .tippy-arrow::before{ border-top-color: var(--thm-base); }
.tippy-box[data-theme~='bw-error'][data-placement^='bottom'] > .tippy-arrow::before{ border-bottom-color: var(--thm-base); }
.tippy-box[data-theme~='bw-error'][data-placement^='left'] > .tippy-arrow::before{ border-left-color: var(--thm-base); }
.tippy-box[data-theme~='bw-error'][data-placement^='right'] > .tippy-arrow::before{ border-right-color: var(--thm-base); }

/* focus highlight (keep your shake effect) */
.bw-err-focus{
  animation: bwErrShake .35s ease-in-out 0s 2;
  outline: 2px solid var(--thm-base);
  outline-offset: 2px;
  border-radius: 10px;
}
@keyframes bwErrShake{
  0%{ transform: translateX(0); }
  25%{ transform: translateX(-3px); }
  50%{ transform: translateX(3px); }
  75%{ transform: translateX(-2px); }
  100%{ transform: translateX(0); }
}

/* fallback bubble (only used if tippy missing) */
#bw-root .bw-fallback-bubble{
  position:absolute;
  z-index: 999999;
  max-width: 260px;
  background: var(--thm-base);
  color:#fff;
  padding: 10px 12px;
  border-radius: 10px;
  font-size: 13px;
  line-height: 1.35;
  box-shadow: 0 10px 25px rgba(0,0,0,.15);
  display:none;
}


/* ===== BookingWidget error bubble (non-tippy, to avoid tooltip cleanup conflicts) ===== */
.bw-err-bubble{
  position: fixed;
  z-index: 2147483000;
  max-width: 320px;
  padding: 10px 12px;
  border-radius: 10px;
  background: var(--thm-base);
  color: #fff;
  font-size: 13px;
  line-height: 1.35;
  box-shadow: 0 12px 30px rgba(0,0,0,.22);
  pointer-events: auto;
  white-space: normal;
}
.bw-err-bubble__arrow{
  position: absolute;
  width: 0;
  height: 0;
  transform: translateX(-50%);
}
.bw-err-bubble[data-placement="top"] .bw-err-bubble__arrow{
  left: 50%;
  bottom: -8px;
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  border-top: 8px solid var(--thm-base);
}
.bw-err-bubble[data-placement="bottom"] .bw-err-bubble__arrow{
  left: 50%;
  top: -8px;
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  border-bottom: 8px solid var(--thm-base);
}

/* ===== Pricing loading (STEP2) ===== */
#bw-root.bw-pricing-loading .bw-bottom-bar{display:none !important;}
#bw-root.bw-pricing-loading .bw-booking-area{min-height:220px;}
#bw-root .bw-booking-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 16px;text-align:center;}
#bw-root .bw-booking-loading__text{margin-top:12px;color:var(--thm-base);font-weight:600;}
#bw-root .bw-spinner{width:28px;height:28px;border-radius:50%;border:3px solid rgba(0,0,0,.12);border-top-color:var(--thm-base);animation:bwspin .9s linear infinite;}
@keyframes bwspin{to{transform:rotate(360deg);}}

/* Ensure hidden packages are truly hidden even if bw-pkg has display !important */
#bw-root .bw-pkg.is-hidden,
#bw-root label.bw-pkg.is-hidden {
    display: none !important;
}

/* =========================
   Guests info (STEP2)
   ========================= */
#bw-root #bw-guests-wrap{margin-top:18px;}
#bw-root .bw-guests__list{list-style:none;margin:0;padding:0;display:grid;gap:14px;}
#bw-root .bw-guest{border:1px solid var(--thm-gray);border-radius:12px;padding:14px;background:#fff;}
#bw-root .bw-guest__head{margin-bottom:10px;}
#bw-root .bw-guest__head .tour-details__subtitle{margin:0;font-size:18px;}
#bw-root .bw-guest__grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start;}
#bw-root .bw-guest__field{display:flex;flex-direction:column;gap:6px;min-width:0;}
#bw-root .bw-guest__label{font-size:14px;}
#bw-root .bw-guest__field input.bw-input{height:38px;}
#bw-root .bw-guest__field--gender{grid-column:1 / -1;}
#bw-root .bw-guest__gender{display:flex;flex-wrap:wrap;gap:18px;align-items:center;min-height:30px;}
#bw-root .bw-guest__radio{display:inline-flex;align-items:center;gap:8px;color:var(--thm-black);font-size:15px;}
#bw-root .bw-guest__radio input[type="radio"]{position:absolute;opacity:0;pointer-events:none;}
@media (max-width: 768px){
  #bw-root .bw-guest__grid{grid-template-columns:1fr;}
}


/* Guests step only appears after Next */
#bw-root .bw-booking-area--guests {
  padding-top: 4px;
}

#bw-root .bw-bottom-bar--guests .bw-bottom-actions {
  display: flex;
  align-items: center;
  gap: 0;
}


/* =========================
   Guests order form extras (pickup / flight / phone / memo)
   ========================= */
#bw-root .bw-order-form{display:grid;gap:18px;}
#bw-root .bw-order-card{border:1px solid var(--thm-gray);border-radius:12px;padding:14px;background:#fff;}
#bw-root .bw-order-subtitle{margin:0 0 10px;font-size:14px;color:var(--thm-darkgray);line-height:1.5;}
#bw-root .bw-order-field{display:flex;flex-direction:column;gap:6px;min-width:0;}
#bw-root .bw-textarea{width:100%;min-height:120px;border:1px solid var(--thm-gray);border-radius:12px;padding:10px 12px;background:#fff;color:var(--thm-black);font:inherit;resize:vertical;outline:none;}
#bw-root .bw-textarea:focus{border-color:var(--thm-secondary);box-shadow:0 0 0 3px rgba(var(--thm-secondary-rgb), 0.12);}
#bw-root .bw-phone-row{display:grid;grid-template-columns:180px 1fr;gap:12px;align-items:end;}
#bw-root .bw-pickup-list{list-style:none;margin:0;padding:0;display:grid;gap:12px;}
#bw-root .bw-pickup{border:1px solid var(--thm-gray);border-radius:12px;background:#fff;}
#bw-root .bw-pickup__label{display:flex;align-items:flex-start;gap:12px;padding:12px;cursor:pointer;}
#bw-root .bw-pickup__label input[type="radio"]{position:absolute;opacity:0;pointer-events:none;}
#bw-root .bw-pickup__body{display:flex;flex-direction:column;gap:6px;min-width:0;}
#bw-root .bw-pickup__title{font-size:16px;font-weight:600;color:var(--thm-black);}
#bw-root .bw-pickup__meta{display:flex;align-items:flex-start;gap:8px;color:var(--thm-body);font-size:14px;line-height:1.5;}
#bw-root .bw-pickup__meta i{color:var(--thm-primary);margin-top:3px;}
#bw-root .bw-pickup__desc{font-size:14px;color:var(--thm-body);line-height:1.5;}
#bw-root .bw-flight-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
#bw-root .bw-flight-box{border:1px solid rgba(0,0,0,.06);border-radius:12px;padding:12px;background:rgba(0,0,0,.015);display:grid;gap:12px;}
#bw-root .bw-flight-box .tour-details__subtitle{margin:0;font-size:18px;}
#bw-root .bw-flight-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
@media (max-width: 768px){
  #bw-root .bw-phone-row,
  #bw-root .bw-flight-grid,
  #bw-root .bw-flight-row{grid-template-columns:1fr;}
}


/* Validation highlight (order info step) */
#bw-root .bw-invalid,
#bw-root .bw-invalid .bw-input,
#bw-root .bw-invalid .bw-select,
#bw-root .bw-invalid .bw-textarea {
  border-color: #d9534f !important;
}

#bw-root .bw-invalid.bw-input,
#bw-root .bw-invalid.bw-select,
#bw-root .bw-invalid.bw-textarea,
#bw-root .bw-invalid .bw-input,
#bw-root .bw-invalid .bw-select,
#bw-root .bw-invalid .bw-textarea {
  box-shadow: 0 0 0 3px rgba(217,83,79,.12) !important;
}

/* =========================
   Email verification
   ========================= */
#bw-root .bw-email-row{display:grid;grid-template-columns:1fr 160px;gap:12px;align-items:end;}
#bw-root .bw-email-action{display:flex;align-items:flex-end;}
#bw-root .bw-btn-email-send{height:42px;border-radius:10px;}
#bw-root .bw-email-verify{display:none;margin-top:12px;}
#bw-root .bw-email-verify.is-active{display:block;}
#bw-root .bw-email-code{display:flex;gap:8px;flex-wrap:nowrap;}
#bw-root .bw-email-code__digit{width:44px;height:44px;border:1px solid var(--thm-gray);border-radius:10px;text-align:center;font-size:20px;font-weight:600;background:#fff;color:var(--thm-black);outline:none;}
#bw-root .bw-email-code__digit:focus{border-color:var(--thm-secondary);box-shadow:0 0 0 3px rgba(var(--thm-secondary-rgb),0.12);}
#bw-root .bw-email-status{margin-top:10px;font-size:14px;color:var(--thm-darkgray);}
#bw-root .bw-email-status.is-sent{color:var(--thm-primary);}
#bw-root .bw-email-status.is-verified{color:#1f8f55;font-weight:600;}
#bw-root .bw-email-status.is-error{
    color:var(--thm-secondary);
}
#bw-root .bw-field-invalid,
#bw-root .bw-invalid,
#bw-root .bw-order-field.bw-invalid,
#bw-root .bw-order-card .bw-invalid,
#bw-root .bw-order-card input.bw-invalid,
#bw-root .bw-order-card textarea.bw-invalid,
#bw-root .bw-order-card select.bw-invalid{
    /*border-color:var(--thm-secondary) !important; */
    box-shadow:0 0 0 2px rgba(192,57,43,.12);
}
#bw-root .bw-order-field.bw-field-invalid .bw-input,
#bw-root .bw-order-field.bw-field-invalid .bw-select,
#bw-root .bw-order-field .bw-input.bw-field-invalid,
#bw-root .bw-order-field .bw-select.bw-field-invalid,
#bw-root .bw-order-field .bw-textarea.bw-field-invalid{
    /*border-color:var(--thm-secondary) !important; */
    box-shadow:0 0 0 2px rgba(192,57,43,.12);
}
@media (max-width: 768px){
  #bw-root .bw-email-row{grid-template-columns:1fr;}
  #bw-root .bw-email-action{align-items:stretch;}
  #bw-root .bw-email-code{justify-content:space-between;}
  #bw-root .bw-email-code__digit{width:14vw;max-width:44px;min-width:38px;}
}

#bw-root #bw-email-verify-wrap[aria-hidden='true']{display:none;}
#bw-root #bw-email-verify-wrap[aria-hidden='false']{display:block;}


/* Email verification UX refinement */
#bw-root .bw-email-row--single{grid-template-columns:minmax(0,1fr);align-items:stretch;}
#bw-root .bw-email-action{display:none !important;}
#bw-root .bw-email-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px;min-height:22px;}
#bw-root .bw-email-meta__text{font-size:14px;color:var(--thm-darkgray);line-height:1.4;}
#bw-root .bw-email-meta__resend{appearance:none;border:0;background:transparent;padding:0;font:inherit;font-size:14px;font-weight:600;color:var(--thm-base);cursor:pointer;}
#bw-root .bw-email-meta__resend:hover{text-decoration:underline;}
#bw-root .bw-email-meta__resend.is-hidden{display:none;}
/*#bw-root .bw-order-card--email.is-verified .bw-email-meta__text{color:#1f8f55;font-weight:600;}*/
@media (max-width:768px){
  #bw-root .bw-email-meta{align-items:flex-start;flex-direction:column;gap:6px;}
}


/* =========================
   Email verification polish
   ========================= */
#bw-root .bw-order-card--email.is-verified [data-bw-email]{
  border-color:#1f8f55 !important;
  box-shadow:0 0 0 3px rgba(31,143,85,.12) !important;
}
#bw-root .bw-email-verify.is-verified .bw-email-code{
  display:none !important;
}
#bw-root .bw-email-status.is-verified{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:#1f8f55;
  font-weight:600;
}
#bw-root .bw-email-status.is-verified i{
  color:#1f8f55;
  font-size:14px;
}
#bw-root .bw-email-shake{
  animation:bwEmailNeedReverify .42s ease-in-out;
}
@keyframes bwEmailNeedReverify{
  0%{transform:translateX(0)}
  20%{transform:translateX(-3px)}
  40%{transform:translateX(3px)}
  60%{transform:translateX(-2px)}
  80%{transform:translateX(2px)}
  100%{transform:translateX(0)}
}


/* =========================
   Review step (STEP3-like summary)
   ========================= */
#bw-root .bw-booking-area--review{padding-top:4px;}
#bw-root .bw-review{display:grid;gap:16px;}
#bw-root .bw-review-card{border:1px solid var(--thm-gray);border-radius:14px;background:#fff;padding:16px;box-shadow:0 8px 24px rgba(0,0,0,.04);} 
#bw-root .bw-review-card--hero{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;background:linear-gradient(180deg, rgba(var(--thm-secondary-rgb), .06), rgba(0,0,0,0));}
#bw-root .bw-review-hero__price{display:flex;flex-direction:column;align-items:flex-end;min-width:140px;}
#bw-root .bw-review-hero__label{font-size:13px;color:var(--thm-body);}
#bw-root .bw-review-hero__value{font-size:28px;font-weight:700;color:var(--thm-secondary);line-height:1;}
#bw-root .bw-review-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,.9fr);gap:16px;align-items:start;}
#bw-root .bw-review-primary,
#bw-root .bw-review-secondary{display:grid;gap:16px;align-content:start;}
#bw-root .bw-review-card--wide{width:100%;}
#bw-root .bw-review-card--trip .bw-review-row__label{min-width:0;}
#bw-root .bw-review-card--contact,
#bw-root .bw-review-card--sidebar{position:sticky;top:8px;}
#bw-root .bw-review-row{display:grid;grid-template-columns:160px 1fr;gap:14px;padding:10px 0;border-top:1px solid rgba(0,0,0,.06);} 
#bw-root .bw-review-row:first-of-type{border-top:none;padding-top:0;}
#bw-root .bw-review-row__label{font-size:14px;}
#bw-root .bw-review-row__value{font-size:14px;line-height:1.6;min-width:0;}
#bw-root .bw-review-empty{color:var(--thm-darkgray);}
#bw-root .bw-review-list{list-style:none;margin:0;padding:0;display:grid;gap:6px;}
#bw-root .bw-review-list li{position:relative;padding-left:18px;line-height:1.55;}
#bw-root .bw-review-list li::before{content:'';position:absolute;left:4px;top:.75em;width:6px;height:6px;border-radius:50%;background:var(--thm-base);} 
#bw-root .bw-review-list--guests li{display:grid;grid-template-columns:180px 1fr auto;gap:12px;padding:10px 0 10px 0;border-top:1px solid rgba(0,0,0,.06);}
#bw-root .bw-review-list--guests li:first-child{border-top:none;padding-top:0;}
#bw-root .bw-review-list--guests li::before{display:none;}
#bw-root .bw-review-list--guests li strong{font-weight:600;color:var(--thm-black);} 
#bw-root .bw-review-list--guests li small{color:var(--thm-body);font-size:13px;}
@media (max-width: 960px){
  #bw-root .bw-review-layout{grid-template-columns:1fr;}
  #bw-root .bw-review-card--contact,
  #bw-root .bw-review-card--sidebar{position:static;}
}
@media (max-width: 768px){
  #bw-root .bw-review-row{grid-template-columns:1fr;gap:6px;}
  #bw-root .bw-review-list--guests li{grid-template-columns:1fr;gap:4px;}
  #bw-root .bw-review-card--hero{flex-direction:column;}
  #bw-root .bw-review-hero__price{align-items:flex-start;}
}


/* Review v4 polish */
#bw-root .bw-review-card--guests .bw-review-list--guests{margin-top:2px;}
#bw-root .bw-review-list--guests li{display:grid;grid-template-columns:minmax(120px,180px) minmax(0,1fr) auto;gap:12px;align-items:start;padding:10px 0;border-top:1px solid rgba(0,0,0,.06);} 
#bw-root .bw-review-list--guests li:first-child{border-top:none;padding-top:0;}
#bw-root .bw-review-list--guests li::before{display:none;}
#bw-root .bw-review-guest__role{font-weight:600;color:var(--thm-black);}
#bw-root .bw-review-guest__name{min-width:0;color:var(--thm-black);}
#bw-root .bw-review-guest__meta{white-space:nowrap;}
#bw-root .bw-review-row--nowrap .bw-review-row__value,
#bw-root .bw-review-card--contact .bw-review-row__value{white-space:nowrap;word-break:normal;overflow-wrap:normal;}
@media (max-width: 768px){
  #bw-root .bw-review-list--guests li{grid-template-columns:1fr;gap:4px;}
  #bw-root .bw-review-row--nowrap .bw-review-row__value,
  #bw-root .bw-review-card--contact .bw-review-row__value{white-space:nowrap;overflow-x:auto;}
}


/* Review v5 polish */
#bw-root .bw-review-card--contact .bw-review-row__value{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  text-align:right;
  min-width:0;
}
#bw-root .bw-review-nowrap{
  display:block;
  max-width:100%;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  text-align:right;
}
#bw-root .bw-review-list--guests li{
  grid-template-columns:minmax(120px,180px) minmax(0,1fr);
  align-items:center;
}
#bw-root .bw-review-guest__main{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-width:0;
}
#bw-root .bw-review-guest__name{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
#bw-root .bw-review-guest__meta{
  flex:0 0 auto;
  align-self:center;
  line-height:1.4;
}
@media (max-width: 768px){
  #bw-root .bw-review-card--contact .bw-review-row__value{
    justify-content:flex-start;
    text-align:left;
  }
  #bw-root .bw-review-nowrap{ text-align:left; }
  #bw-root .bw-review-guest__main{
    justify-content:flex-start;
    flex-wrap:wrap;
    gap:6px 12px;
  }
  #bw-root .bw-review-guest__name{
    white-space:normal;
    overflow:visible;
    text-overflow:clip;
  }
}


/* Review v6 contact layout polish */
#bw-root .bw-review-card--contact{
  border-color: rgba(0,0,0,.05);
  box-shadow: 0 10px 28px rgba(0,0,0,.04);
}
#bw-root .bw-review-card--contact .tour-details__title{
  margin-bottom: 6px;
}
#bw-root .bw-review-card--contact .bw-review-row{
  grid-template-columns: 76px minmax(0,1fr);
  gap: 10px;
  align-items: center;
  padding: 9px 0;
}
#bw-root .bw-review-card--contact .bw-review-row__label{
  /*font-size: 12px;*/
  letter-spacing: .02em;
  /*text-transform: uppercase;*/
  /*color: var(--thm-darkgray);*/
}
#bw-root .bw-review-card--contact .bw-review-row__value{
  justify-content: flex-end;
  text-align: right;
}
#bw-root .bw-review-card--contact .bw-review-nowrap{
  max-width: min(100%, 260px);
}
#bw-root .bw-review-list--guests li{
  align-items: baseline;
}
#bw-root .bw-review-guest__main{
  align-items: baseline;
}
#bw-root .bw-review-guest__meta{
  display: inline-flex;
  align-items: center;
  line-height: 1;
  padding-top: 0;
}
@media (max-width: 768px){
  #bw-root .bw-review-card--contact .bw-review-row{
    grid-template-columns: 68px minmax(0,1fr);
    gap: 8px;
  }
  #bw-root .bw-review-card--contact .bw-review-nowrap{
    max-width: 100%;
  }
}


/* =========================
   Review guest info compact layout
   - remove dedicated role column
   - show name first, leader as icon
   - show Adult/Child | Male/Female
   ========================= */
#bw-root .bw-review-list--guests li{
  grid-template-columns: minmax(0,1fr) !important;
  gap: 6px !important;
  align-items: center !important;
}

#bw-root .bw-review-guest__main{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-width:0;
}

#bw-root .bw-review-guest__name{
  min-width:0;
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-weight:600;
  color:var(--thm-black);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

#bw-root .bw-review-guest__leader{
  color: var(--thm-primary);
  font-size: 14px;
  flex: 0 0 auto;
}

#bw-root .bw-review-guest__meta{
  flex:0 0 auto;
  color:var(--thm-body);
  font-size:13px;
  white-space:nowrap;
}

#bw-root .bw-review-guest__sep{
  opacity:.6;
  margin:0 4px;
}

@media (max-width: 768px){
  #bw-root .bw-review-guest__main{
    flex-wrap:wrap;
    justify-content:flex-start;
    gap:4px 10px;
  }

  #bw-root .bw-review-guest__name{
    max-width:100%;
    white-space:normal;
    overflow:visible;
    text-overflow:clip;
  }
}

/* =========================
   DOB fields + review extras + checkout button polish
   ========================= */
#bw-root .bw-dob-list{list-style:none;margin:0;padding:0;display:grid;gap:12px;}
#bw-root .bw-dob__item{list-style:none;}
#bw-root .bw-order-field--dob .bw-input{text-transform:none;}
#bw-root .bw-review-card--extras .bw-review-row__value .bw-review-list{margin-top:0;}


/* =========================
   Additional Traveler Info: keep DOB rows inside card
   - only affects the extras review card
   ========================= */
#bw-root .bw-review-card--extras .bw-review-row{
  grid-template-columns: 96px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
}

#bw-root .bw-review-card--extras .bw-review-row__label{
  min-width: 0;
  white-space: normal;
  line-height: 1.45;
}

#bw-root .bw-review-card--extras .bw-review-row__value{
  min-width: 0;
  overflow: hidden;
}

#bw-root .bw-review-card--extras .bw-review-row__value .bw-review-list{
  min-width: 0;
  width: 100%;
}

#bw-root .bw-review-card--extras .bw-review-row__value .bw-review-list li{
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
}

@media (max-width: 768px){
  #bw-root .bw-review-card--extras .bw-review-row{
    grid-template-columns: 1fr;
    gap: 6px;
  }
}


/* =========================
   Review page: keep bottom bar pinned to the bottom of right column
   Only fixes the final review step layout.
   ========================= */
#bw-root .bw-col--right{
  display:flex;
  flex-direction:column;
  min-height:0;
}

#bw-root .bw-booking-area--review{
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
}

#bw-root .bw-bottom-bar--review{
  margin-top:auto;
  position:sticky;
  bottom:0;
  left:0;
  right:0;
}


/* =========================
   Mobile Step2 view switch
   - keep desktop unchanged
   - on small screens, switch between Booking and Details in header
   ========================= */
#bw-root .bw-step2-switch{
  display:none;
}

@media (max-width: 960px){
  #bw-root.is-step2 .bw-header-left{
    flex: 1 1 auto;
    min-width: 0;
  }

  #bw-root.is-step2 .bw-header-left-inner{
    width: 100%;
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
  }

  #bw-root.is-step2 .bw-step2-switch{
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px;
    border: 1px solid rgba(0,0,0,.08);
    border-radius: 999px;
    background: #f6f7f9;
    min-width: 0;
    max-width: 100%;
  }

  #bw-root.is-step2 .bw-step2-switch__btn{
    appearance: none;
    border: 0;
    background: transparent;
    color: var(--thm-body);
    font: inherit;
    font-size: 14px;
    font-weight: 600;
    line-height: 1;
    padding: 9px 14px;
    border-radius: 999px;
    cursor: pointer;
    white-space: nowrap;
    transition: background .18s ease, color .18s ease, box-shadow .18s ease;
  }

  #bw-root.is-step2 .bw-step2-switch__btn.is-active{
    background: #fff;
    color: var(--thm-black);
    box-shadow: 0 2px 10px rgba(0,0,0,.08);
  }

  #bw-root.is-step2 .bw-step2-switch__btn:not(.is-active):hover{
    color: var(--thm-black);
    background: rgba(255,255,255,.6);
  }

  #bw-root.is-step2 .bw-step2{
    flex-direction: column;
  }

  #bw-root.is-step2-show-booking .bw-col--left{
    display:none;
  }

  #bw-root.is-step2-show-booking .bw-col--right{
    display:flex;
    flex-direction:column;
  }

  #bw-root.is-step2-show-details .bw-col--left{
    display:block;
  }

  #bw-root.is-step2-show-details .bw-col--right{
    display:none;
  }
}

.inventory-tbl-wrapper {
    max-width: none !important;
}

.bw-unavailable-modal {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 24px;
}

.bw-unavailable-modal.is-open {
  display: flex;
}

.bw-unavailable-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(7, 24, 28, .58);
  backdrop-filter: blur(3px);
}

.bw-unavailable-modal__dialog {
  position: relative;
  width: min(520px, 100%);
  padding: 28px 28px 24px;
  border: 1px solid var(--thm-gray);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 28px 70px rgba(0, 0, 0, .22);
  color: var(--thm-black);
}

.bw-unavailable-modal__close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 999px;
  background: rgba(0, 0, 0, .06);
  color: var(--thm-black);
  font-size: 25px;
  line-height: 1;
  cursor: pointer;
}

.bw-unavailable-modal__close:hover,
.bw-unavailable-modal__close:focus {
  background: rgba(0, 0, 0, .1);
}

.bw-unavailable-modal__eyebrow {
  display: inline-flex;
  margin: 0 42px 10px 0;
  padding: 7px 11px;
  border-radius: 999px;
  background: rgba(var(--thm-secondary-rgb), .1);
  color: var(--thm-secondary);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .08em;
  line-height: 1;
  text-transform: uppercase;
}

.bw-unavailable-modal__dialog h3 {
  margin: 0 42px 12px 0;
  color: var(--thm-black);
  font-size: 28px;
  line-height: 1.18;
}

.bw-unavailable-modal__dialog p {
  margin: 0;
  color: var(--thm-body);
  font-size: 16px;
  line-height: 1.7;
}

.bw-unavailable-modal__actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 22px;
}

.bw-unavailable-modal__primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 10px 18px;
  border: 0;
  border-radius: 999px;
  background: var(--thm-base);
  color: #fff;
  font-size: 15px;
  font-weight: 800;
  cursor: pointer;
}

.bw-unavailable-modal__primary:hover,
.bw-unavailable-modal__primary:focus {
  background: var(--thm-primary);
}

.bw-unavailable-modal-open {
  overflow: hidden;
}

@media (max-width: 575px) {
  .bw-unavailable-modal {
    padding: 16px;
  }

  .bw-unavailable-modal__dialog {
    padding: 24px 20px 22px;
  }

  .bw-unavailable-modal__dialog h3 {
    margin-right: 36px;
    font-size: 23px;
  }
}
