/* Trade Show Booking — booking page (spec §6). Every look is a CSS variable with the default as
 * fallback; the Elementor widget's controls set them on {{WRAPPER}} .tsb-bk.
 * Stacking: --tsb-bk-cols wins, else --tsb-bk-cols-default (two columns, one below 900px). */
.tsb-bk {
  --tsb-bk-ink: #1d1d1f; --tsb-bk-muted: #6e6e73;
  --tsb-bk-cols-default: minmax(0, 1fr) minmax(260px, 340px);
  position: relative; max-width: var(--tsb-bk-max-width, 1100px); margin: 0 auto; color: var(--tsb-bk-ink);
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", Roboto, Arial, sans-serif; line-height: 1.45;
}
.tsb-bk *, .tsb-bk *::before, .tsb-bk *::after { box-sizing: border-box; }
.tsb-bk [hidden] { display: none !important; }

/* Steps */
/* Step tabs (0.3.6: radius, padding, height, gap, border, number circle and shadow per state). Shadows come
   from Elementor's Box Shadow controls on .tsb-bk-step / .is-current / .is-done / :hover. */
.tsb-bk-steps { display: flex; gap: var(--tsb-bk-steps-gap, 8px); margin-bottom: var(--tsb-bk-gap, 24px); overflow-x: auto; padding: 4px 2px; }
.tsb-bk button.tsb-bk-step {
  display: inline-flex; align-items: center; gap: 8px; flex: 1 1 0; min-width: max-content; min-height: var(--tsb-bk-step-height, 0); margin: 0;
  padding: var(--tsb-bk-step-pad, 10px 14px); border: var(--tsb-bk-step-border-width, 0) solid var(--tsb-bk-step-border, transparent); border-radius: var(--tsb-bk-step-radius, 999px);
  background: var(--tsb-bk-step-bg, #f0f0f3); color: var(--tsb-bk-step-color, var(--tsb-bk-muted)); font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; text-transform: none; letter-spacing: normal;
  transition: background-color .16s ease-out, color .16s ease-out, border-color .16s ease-out, box-shadow .16s ease-out;
}
.tsb-bk-step__n { display: inline-grid; place-items: center; flex: none; width: var(--tsb-bk-step-n-size, 22px); height: var(--tsb-bk-step-n-size, 22px); border-radius: 50%; background: var(--tsb-bk-step-n-bg, rgba(0,0,0,.08)); color: var(--tsb-bk-step-n-color, inherit); font-size: 12px; }
.tsb-bk button.tsb-bk-step:hover:not(.is-current) { background: var(--tsb-bk-step-hover-bg, #e8e8ed); color: var(--tsb-bk-step-hover-color, var(--tsb-bk-ink)); border-color: var(--tsb-bk-step-hover-border, var(--tsb-bk-step-border, transparent)); }
.tsb-bk button.tsb-bk-step:hover:not(.is-current) .tsb-bk-step__n { background: var(--tsb-bk-step-hover-n-bg, var(--tsb-bk-step-n-bg, rgba(0,0,0,.08))); color: var(--tsb-bk-step-hover-n-color, var(--tsb-bk-step-n-color, inherit)); }
.tsb-bk button.tsb-bk-step.is-done { background: var(--tsb-bk-step-done-bg, #e8f5ec); color: var(--tsb-bk-step-done-color, #1d6b35); border-color: var(--tsb-bk-step-done-border, var(--tsb-bk-step-border, transparent)); }
.tsb-bk button.tsb-bk-step.is-done .tsb-bk-step__n { background: var(--tsb-bk-step-done-n-bg, var(--tsb-bk-step-n-bg, rgba(0,0,0,.08))); color: var(--tsb-bk-step-done-n-color, var(--tsb-bk-step-n-color, inherit)); }
.tsb-bk button.tsb-bk-step.is-current { background: var(--tsb-bk-step-cur-bg, #1d1d1f); color: var(--tsb-bk-step-cur-color, #fff); border-color: var(--tsb-bk-step-cur-border, var(--tsb-bk-step-border, transparent)); }
.tsb-bk button.tsb-bk-step.is-current .tsb-bk-step__n { background: var(--tsb-bk-step-cur-n-bg, rgba(255,255,255,.2)); color: var(--tsb-bk-step-cur-n-color, inherit); }

/* Layout */
.tsb-bk-body { display: grid; grid-template-columns: var(--tsb-bk-cols, var(--tsb-bk-cols-default)); gap: var(--tsb-bk-gap, 24px); align-items: start; }
.tsb-bk[data-summary="left"] .tsb-bk-summary { order: -1; }
.tsb-bk-panel {
  padding: var(--tsb-bk-panel-pad, 32px); background: var(--tsb-bk-panel-bg, #fff); border-radius: var(--tsb-bk-panel-radius, 28px);
  border: var(--tsb-bk-panel-border-width, 0) solid var(--tsb-bk-panel-border, transparent);
  box-shadow: 0 1px 2px rgba(0,0,0,.04), 0 20px 60px rgba(0,0,0,.08);
}
.tsb-bk .tsb-bk-title { margin: 0 0 20px; font-size: 22px; font-weight: 600; letter-spacing: -.01em; color: var(--tsb-bk-title-color, inherit); }
.tsb-bk .tsb-bk-label { margin: 20px 0 10px; font-size: 14px; font-weight: 600; color: var(--tsb-bk-label-color, var(--tsb-bk-ink)); }
.tsb-bk .tsb-bk-label:first-child { margin-top: 0; }
.tsb-bk .tsb-bk-help { margin: -8px 0 16px; font-size: 14px; color: var(--tsb-bk-muted); }

/* Choices (step 1) */
.tsb-bk-opts { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px; }
.tsb-bk button.tsb-bk-opt {
  display: flex; flex-direction: column; align-items: flex-start; gap: 4px; margin: 0; padding: 14px 16px; text-align: left; font: inherit; font-size: 15px; font-weight: 600; cursor: pointer; text-transform: none; letter-spacing: normal;
  background: var(--tsb-bk-opt-bg, #fff); color: var(--tsb-bk-opt-color, var(--tsb-bk-ink)); border: 1px solid var(--tsb-bk-opt-border, rgba(0,0,0,.14)); border-radius: var(--tsb-bk-opt-radius, 16px);
}
.tsb-bk button.tsb-bk-opt:hover, .tsb-bk button.tsb-bk-opt:focus { background: var(--tsb-bk-opt-hover-bg, #f5f5f7); color: var(--tsb-bk-opt-hover-color, var(--tsb-bk-opt-color, var(--tsb-bk-ink))); border-color: var(--tsb-bk-opt-hover-border, rgba(0,0,0,.26)); }
.tsb-bk button.tsb-bk-opt[aria-pressed="true"], .tsb-bk button.tsb-bk-opt[aria-pressed="true"]:hover, .tsb-bk button.tsb-bk-opt[aria-pressed="true"]:focus {
  background: var(--tsb-bk-opt-sel-bg, #1d1d1f); color: var(--tsb-bk-opt-sel-color, #fff); border-color: var(--tsb-bk-opt-sel-border, #1d1d1f);
}
.tsb-bk .tsb-bk-opt__price { font-size: 14px; font-weight: 500; opacity: .75; font-variant-numeric: tabular-nums; }
.tsb-bk .tsb-bk-opt__desc { font-size: 13px; font-weight: 400; line-height: 1.35; color: var(--tsb-bk-opt-desc-color, var(--tsb-bk-muted)); }
.tsb-bk button.tsb-bk-opt:hover .tsb-bk-opt__desc, .tsb-bk button.tsb-bk-opt:focus .tsb-bk-opt__desc { color: var(--tsb-bk-opt-hover-desc-color, var(--tsb-bk-opt-desc-color, var(--tsb-bk-muted))); }
.tsb-bk button.tsb-bk-opt[aria-pressed="true"] .tsb-bk-opt__desc { color: var(--tsb-bk-opt-sel-desc-color, rgba(255,255,255,.75)); }

/* Summary step (0.3.0): the chosen box, what's included, chosen add-ons, notes, "Need a change?" */
.tsb-bk-selected { padding: var(--tsb-bk-sel-pad, 20px 22px); background: var(--tsb-bk-sel-bg, #f5f5f7); border: var(--tsb-bk-sel-border-width, 1px) solid var(--tsb-bk-sel-border, transparent); border-radius: var(--tsb-bk-sel-radius, 20px); }
.tsb-bk-selected__head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.tsb-bk-selected__crew { font-size: 14px; color: var(--tsb-bk-sel-muted, var(--tsb-bk-muted)); }
.tsb-bk-selected__len { font-size: 20px; font-weight: 600; color: var(--tsb-bk-sel-color, var(--tsb-bk-ink)); }
.tsb-bk-selected__price { font-size: 26px; font-weight: 600; letter-spacing: -.02em; font-variant-numeric: tabular-nums; color: var(--tsb-bk-sel-price-color, var(--tsb-bk-ink)); }
.tsb-bk .tsb-bk-included__title { margin: 18px 0 10px; }
.tsb-bk ul.tsb-bk-included, .tsb-bk ul.tsb-bk-chosen-addons, .tsb-bk ul.tsb-bk-notes { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--tsb-bk-inc-gap, 10px); }
.tsb-bk ul.tsb-bk-included li { display: flex; align-items: flex-start; gap: 10px; margin: 0; padding: 0; font-size: 15px; color: var(--tsb-bk-inc-color, inherit); list-style: none; }
.tsb-bk ul.tsb-bk-included li::before, .tsb-bk ul.tsb-bk-chosen-addons li::before, .tsb-bk ul.tsb-bk-notes li::before { content: none; }
.tsb-bk ul.tsb-bk-included li.is-strong { font-weight: 600; }
.tsb-bk .tsb-bk-tick { flex: none; width: var(--tsb-bk-tick-size, 18px); height: var(--tsb-bk-tick-size, 18px); margin-top: 2px; color: var(--tsb-bk-tick-color, #c4251c); }
.tsb-bk ul.tsb-bk-chosen-addons { margin-top: 14px; padding-top: 14px; border-top: 1px solid rgba(0,0,0,.08); }
.tsb-bk ul.tsb-bk-chosen-addons li { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin: 0; font-size: 15px; font-weight: 600; list-style: none; }
.tsb-bk .tsb-bk-addon__text { display: flex; flex-direction: column; gap: 2px; }
.tsb-bk .tsb-bk-addon__desc { font-size: 13px; font-weight: 400; color: var(--tsb-bk-note-color, var(--tsb-bk-muted)); }
.tsb-bk ul.tsb-bk-notes { margin-top: 12px; gap: 4px; } /* the USA note: its own line, right under What's included */
.tsb-bk ul.tsb-bk-notes li { margin: 0; font-size: 13px; color: var(--tsb-bk-note-color, var(--tsb-bk-muted)); list-style: none; }
.tsb-bk ul.tsb-bk-notes:empty { display: none; }
.tsb-bk-change { margin-top: 16px; border: var(--tsb-bk-change-border-width, 1px) solid var(--tsb-bk-change-border, rgba(0,0,0,.1)); border-radius: var(--tsb-bk-change-radius, 16px); background: var(--tsb-bk-change-bg, #fff); }
.tsb-bk-change__title { display: flex; align-items: center; justify-content: space-between; padding: 14px 18px; font-size: 15px; font-weight: 600; cursor: pointer; list-style: none; color: var(--tsb-bk-change-color, var(--tsb-bk-ink)); }
.tsb-bk-change__title::-webkit-details-marker { display: none; }
.tsb-bk-change__title::after { content: ""; width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform .16s ease-out; margin-right: 4px; }
.tsb-bk-change[open] .tsb-bk-change__title::after { transform: rotate(-135deg); }
.tsb-bk-change .tsb-bk-choices { padding: 0 18px 18px; }
.tsb-bk a.tsb-bk-back-link { display: inline-flex; align-items: center; padding: 14px 4px; font-size: 15px; font-weight: 600; text-decoration: none; color: var(--tsb-bk-back-color, var(--tsb-bk-muted)); }
.tsb-bk .tsb-bk-nav .tsb-bk-next:only-child, .tsb-bk .tsb-bk-nav [hidden] + .tsb-bk-next { margin-left: auto; }
.tsb-bk-check { flex-direction: row; align-items: center; gap: 10px; }
.tsb-bk .tsb-bk-check input { width: 20px; min-height: 20px; height: 20px; }
.tsb-bk .tsb-bk-field select { width: 100%; min-height: 46px; margin: 0; padding: 10px 14px; font: inherit; font-size: 15px; background: var(--tsb-bk-field-bg, #f5f5f7); color: var(--tsb-bk-field-color, var(--tsb-bk-ink)); border: 1px solid var(--tsb-bk-field-border, transparent); border-radius: var(--tsb-bk-field-radius, 12px); }
.tsb-bk .tsb-bk-field select[aria-invalid="true"] { border-color: var(--tsb-bk-field-error, #c4251c); }

/* Details (step 2) */
.tsb-bk-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 16px; }
.tsb-bk-field { display: flex; flex-direction: column; gap: 6px; }
.tsb-bk-field--wide { grid-column: 1 / -1; }
.tsb-bk-field__label { font-size: 13px; font-weight: 600; color: var(--tsb-bk-label-color, var(--tsb-bk-ink)); }
.tsb-bk-field__label em { font-style: normal; font-weight: 400; color: var(--tsb-bk-muted); }
.tsb-bk .tsb-bk-field input, .tsb-bk .tsb-bk-field textarea {
  width: 100%; min-height: 46px; margin: 0; padding: 10px 14px; font: inherit; font-size: 15px;
  background: var(--tsb-bk-field-bg, #f5f5f7); color: var(--tsb-bk-field-color, var(--tsb-bk-ink)); border: 1px solid var(--tsb-bk-field-border, transparent); border-radius: var(--tsb-bk-field-radius, 12px); box-shadow: none;
}
.tsb-bk .tsb-bk-field input:focus, .tsb-bk .tsb-bk-field textarea:focus { outline: 0; background: #fff; border-color: var(--tsb-bk-field-focus, #0a64d8); box-shadow: 0 0 0 3px rgba(10,100,216,.15); }
.tsb-bk .tsb-bk-field [aria-invalid="true"] { border-color: var(--tsb-bk-field-error, #c4251c); background: #fff; }

/* Calendar (step 3) */
.tsb-bk-cal { padding: 16px; background: var(--tsb-bk-cal-bg, #f5f5f7); border-radius: 20px; }
.tsb-bk-cal__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; font-weight: 600; }
.tsb-bk-cal__head button { width: 36px; height: 36px; margin: 0; padding: 0; border: 0; border-radius: 50%; background: #fff; font-size: 20px; line-height: 1; cursor: pointer; color: inherit; }
.tsb-bk-cal__head button:disabled { opacity: .3; cursor: default; }
.tsb-bk-cal__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.tsb-bk-cal__wd { padding: 4px 0; font-size: 12px; font-weight: 600; text-align: center; color: var(--tsb-bk-wd-color, var(--tsb-bk-muted)); }
.tsb-bk button.tsb-bk-day {
  height: var(--tsb-bk-day-size, 44px); margin: 0; padding: 0; border: 0; border-radius: var(--tsb-bk-day-radius, 12px); background: #fff;
  color: var(--tsb-bk-day-color, var(--tsb-bk-ink)); font: inherit; font-size: 15px; font-weight: 600; font-variant-numeric: tabular-nums; cursor: pointer;
}
.tsb-bk button.tsb-bk-day:hover:not(:disabled) { background: var(--tsb-bk-day-hover-bg, #e8e8ed); }
.tsb-bk button.tsb-bk-day:disabled { background: transparent; color: var(--tsb-bk-day-closed-color, #b0b0b5); font-weight: 400; text-decoration: line-through; cursor: default; }
.tsb-bk button.tsb-bk-day.is-run, .tsb-bk button.tsb-bk-day.is-run:disabled { background: var(--tsb-bk-day-run-bg, #e9dcc0); color: var(--tsb-bk-day-run-color, var(--tsb-bk-ink)); font-weight: 600; text-decoration: none; } /* a day inside the chosen run never looks closed, even if it couldn't start a run itself */
.tsb-bk button.tsb-bk-day.is-start { background: var(--tsb-bk-day-start-bg, #1d1d1f); color: var(--tsb-bk-day-start-color, #fff); }

/* Payment (step 4) */
.tsb-bk-paychoice { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-bottom: 20px; }
.tsb-bk-paycard {
  position: relative; display: flex; flex-direction: column; gap: 4px; padding: 16px 18px; cursor: pointer;
  background: var(--tsb-bk-pay-bg, #fff); color: var(--tsb-bk-pay-color, var(--tsb-bk-ink)); border: 1px solid var(--tsb-bk-pay-border, rgba(0,0,0,.14)); border-radius: 16px;
}
.tsb-bk-paycard input { position: absolute; opacity: 0; }
.tsb-bk-paycard:has(input:checked) { background: var(--tsb-bk-pay-sel-bg, #f5f5f7); border-color: var(--tsb-bk-pay-sel-border, var(--tsb-bk-ink)); box-shadow: inset 0 0 0 1px var(--tsb-bk-pay-sel-border, var(--tsb-bk-ink)); }
.tsb-bk-paycard__label { font-size: 14px; font-weight: 600; }
.tsb-bk-paycard__amount { font-size: 24px; font-weight: 600; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.tsb-bk-paycard__note { font-size: 13px; color: var(--tsb-bk-muted); }
.tsb-bk-wallets { display: grid; gap: 10px; margin-bottom: 16px; }
.tsb-bk-apple { height: 48px; border-radius: 12px; cursor: pointer; -webkit-appearance: -apple-pay-button; -apple-pay-button-type: pay; -apple-pay-button-style: black; }
.tsb-bk-google { min-height: 48px; }
.tsb-bk-or { font-size: 13px; text-align: center; color: var(--tsb-bk-muted); }
.tsb-bk-card { min-height: 90px; margin-bottom: 8px; }

/* Buttons */
.tsb-bk-nav { display: flex; justify-content: space-between; gap: 12px; margin-top: 24px; }
.tsb-bk button.tsb-bk-next, .tsb-bk button.tsb-bk-pay {
  margin: 24px 0 0 auto; padding: 14px 28px; border: 0; border-radius: var(--tsb-bk-btn-radius, 14px); font: inherit; font-size: 16px; font-weight: 600; cursor: pointer; text-transform: none; letter-spacing: normal;
  background: var(--tsb-bk-btn-bg, #c8a96d); color: var(--tsb-bk-btn-color, #1c1c1a);
}
.tsb-bk-nav button.tsb-bk-next, .tsb-bk-nav button.tsb-bk-pay { margin-top: 0; }
.tsb-bk button.tsb-bk-next:hover, .tsb-bk button.tsb-bk-pay:hover:not(:disabled) { background: var(--tsb-bk-btn-hover-bg, #d6bc86); color: var(--tsb-bk-btn-hover-color, var(--tsb-bk-btn-color, #1c1c1a)); }
.tsb-bk button.tsb-bk-pay:disabled { opacity: .6; cursor: progress; }
.tsb-bk button.tsb-bk-back { margin: 0; padding: 14px 4px; border: 0; background: none; font: inherit; font-size: 15px; font-weight: 600; cursor: pointer; color: var(--tsb-bk-back-color, var(--tsb-bk-muted)); }
.tsb-bk .tsb-bk-error { margin: 12px 0 0; font-size: 14px; color: var(--tsb-bk-error-color, #c4251c); }

/* Summary */
.tsb-bk-summary {
  position: sticky; top: 24px; display: flex; flex-direction: column; gap: 10px; padding: var(--tsb-bk-sum-pad, 28px);
  background: var(--tsb-bk-sum-bg, #1c1c1a); color: var(--tsb-bk-sum-color, #fff); border-radius: var(--tsb-bk-sum-radius, 24px);
  border: var(--tsb-bk-sum-border-width, 0) solid var(--tsb-bk-sum-border, transparent);
}
.tsb-bk-sum__crew, .tsb-bk-sum__addons { font-size: 14px; color: var(--tsb-bk-sum-muted, rgba(255,255,255,.7)); }
.tsb-bk-sum__line { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; font-variant-numeric: tabular-nums; }
.tsb-bk-sum__len { font-size: 20px; font-weight: 600; }
.tsb-bk-sum__price { font-size: 20px; font-weight: 600; color: var(--tsb-bk-sum-line-price-color, inherit); }
.tsb-bk-sum__addons { display: flex; flex-direction: column; gap: 4px; }
.tsb-bk-sum__addons .tsb-bk-sum__line { font-size: 15px; color: var(--tsb-bk-sum-addon-color, var(--tsb-bk-sum-muted, rgba(255,255,255,.75))); }
.tsb-bk-sum__dates { font-size: 14px; font-weight: 600; }
.tsb-bk-sum__dates:empty, .tsb-bk-sum__addons:empty { display: none; }
.tsb-bk-sum__row { display: flex; justify-content: space-between; gap: 12px; padding-top: 10px; border-top: 1px solid rgba(255,255,255,.14); font-variant-numeric: tabular-nums; }
.tsb-bk-sum__row strong { font-size: 22px; color: var(--tsb-bk-sum-total-color, inherit); }
.tsb-bk-sum__row--muted { color: var(--tsb-bk-sum-muted, rgba(255,255,255,.7)); }

/* Thank-you */
.tsb-bk-thanks { position: fixed; inset: 0; z-index: 99999; display: grid; place-items: center; padding: 16px; background: var(--tsb-bk-overlay, rgba(0,0,0,.45)); }
.tsb-bk-thanks__box { width: min(460px, 100%); padding: var(--tsb-bk-thanks-pad, 32px); border-radius: var(--tsb-bk-thanks-radius, 24px); border: var(--tsb-bk-thanks-border-width, 0) solid var(--tsb-bk-thanks-border, transparent); text-align: center; background: var(--tsb-bk-thanks-bg, #fff); color: var(--tsb-bk-thanks-color, var(--tsb-bk-ink)); }
.tsb-bk .tsb-bk-thanks__title { margin: 0 0 10px; font-size: 22px; }
.tsb-bk .tsb-bk-thanks__msg { margin: 0 0 22px; color: inherit; opacity: .8; }
.tsb-bk button.tsb-bk-thanks__btn { padding: 12px 28px; border: 0; border-radius: var(--tsb-bk-btn-radius, 14px); background: var(--tsb-bk-btn-bg, #c8a96d); color: var(--tsb-bk-btn-color, #1c1c1a); font: inherit; font-weight: 600; cursor: pointer; }

.tsb-bk .tsb-admin-note { margin: 0; padding: 10px 12px; border-radius: 10px; background: #fdecea; color: #8a1c12; font-size: 13px; }

@media (max-width: 900px) {
  .tsb-bk { --tsb-bk-cols-default: minmax(0, 1fr); }
  .tsb-bk-summary { position: static; order: -1; }
  .tsb-bk-panel { padding: var(--tsb-bk-panel-pad, 20px); }
}
@media (max-width: 560px) {
  .tsb-bk-form, .tsb-bk-paychoice { grid-template-columns: minmax(0, 1fr); }
  .tsb-bk-step__label { display: none; }
  .tsb-bk button.tsb-bk-step.is-current .tsb-bk-step__label { display: inline; }
  .tsb-bk button.tsb-bk-day { height: var(--tsb-bk-day-size, 38px); font-size: 14px; }
}
@media (prefers-reduced-motion: reduce) { .tsb-bk * { transition: none !important; } }
