/*
 * THS Experiences Engine â€” Public Booking UI
 * Sprint 8A public foundation polish
 */

:root {
  --ths-exp-blue: #2C99D1;
  --ths-exp-blue-dark: #0f5f8f;
  --ths-exp-navy: #08111f;
  --ths-exp-navy-2: #101b2e;
  --ths-exp-text: #102033;
  --ths-exp-muted: #64748b;
  --ths-exp-line: #dbe7f3;
  --ths-exp-soft: #f4f8fc;
  --ths-exp-soft-blue: #eaf6fc;
  --ths-exp-success: #15803d;
  --ths-exp-warning: #b45309;
  --ths-exp-danger: #b91c1c;
  --ths-exp-shadow: 0 18px 52px rgba(8, 17, 31, .12);
}

.ths-exp-public-booking,
.ths-exp-public-booking * {
  box-sizing: border-box;
}

.ths-exp-public-booking {
  max-width: 1180px;
  margin: 34px auto;
  padding: 0 18px;
  color: var(--ths-exp-text);
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}

.ths-exp-public-booking button,
.ths-exp-public-booking input,
.ths-exp-public-booking textarea,
.ths-exp-public-booking select {
  font: inherit;
}

.ths-exp-public-hero {
  position: relative;
  overflow: hidden;
  border-radius: 26px;
  padding: 30px 32px;
  margin-bottom: 18px;
  color: #fff;
  background:
    radial-gradient(circle at 14% 0%, rgba(44, 153, 209, .42), transparent 34%),
    linear-gradient(135deg, #07111f 0%, #0b1628 52%, #101b2e 100%);
  box-shadow: var(--ths-exp-shadow);
  border: 1px solid rgba(255, 255, 255, .10);
}

.ths-exp-public-hero:after {
  content: "";
  position: absolute;
  inset: auto -80px -120px auto;
  width: 280px;
  height: 280px;
  border-radius: 999px;
  background: rgba(44, 153, 209, .18);
  filter: blur(4px);
}

.ths-exp-public-hero span {
  display: inline-flex;
  align-items: center;
  width: max-content;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(44,153,209,.20);
  border-radius: 999px;
  padding: 6px 12px;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .09em;
  text-transform: uppercase;
  color: #d7f1ff;
}

.ths-exp-public-hero h2 {
  margin: 13px 0 8px;
  color: #fff;
  font-size: clamp(34px, 4vw, 52px);
  line-height: .98;
  letter-spacing: -.055em;
  font-weight: 950;
}

.ths-exp-public-hero p {
  position: relative;
  z-index: 1;
  margin: 0;
  max-width: 760px;
  color: #cbd5e1;
  font-size: 17px;
  line-height: 1.5;
}

.ths-exp-public-form {
  overflow: hidden;
  border-radius: 24px;
  background: #fff;
  border: 1px solid var(--ths-exp-line);
  box-shadow: var(--ths-exp-shadow);
}

.ths-exp-public-form .ths-exp-wizard-progress {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  padding: 16px 18px;
  background: linear-gradient(180deg, #ffffff, #f7fbff);
  border-bottom: 1px solid var(--ths-exp-line);
}

.ths-exp-public-form .ths-exp-wizard-progress button {
  min-height: 46px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border: 1px solid #cfe1f3;
  border-radius: 999px;
  background: #fff;
  color: #36516d;
  font-size: 12px;
  line-height: 1;
  font-weight: 900;
  cursor: pointer;
  box-shadow: 0 1px 2px rgba(15,23,42,.04);
  transition: transform .14s ease, border-color .14s ease, background .14s ease, color .14s ease, box-shadow .14s ease;
}

.ths-exp-public-form .ths-exp-wizard-progress button:hover {
  transform: translateY(-1px);
  border-color: var(--ths-exp-blue);
  box-shadow: 0 8px 18px rgba(44,153,209,.12);
}

.ths-exp-public-form .ths-exp-wizard-progress button span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 24px;
  height: 24px;
  border-radius: 999px;
  background: #e8f0f8;
  color: #0f172a;
  font-size: 12px;
  font-weight: 950;
}

.ths-exp-public-form .ths-exp-wizard-progress button.is-active {
  background: var(--ths-exp-blue);
  border-color: var(--ths-exp-blue);
  color: #fff;
  box-shadow: 0 10px 24px rgba(44,153,209,.26);
}

.ths-exp-public-form .ths-exp-wizard-progress button.is-active span {
  background: #fff;
  color: var(--ths-exp-blue);
}

.ths-exp-public-form .ths-exp-wizard-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  min-height: 540px;
}

.ths-exp-public-form .ths-exp-wizard-main {
  padding: 28px;
}

.ths-exp-public-form .ths-exp-wizard-step {
  display: none;
  animation: thsExpPublicFade .16s ease-out;
}

.ths-exp-public-form .ths-exp-wizard-step.is-active {
  display: block;
}

@keyframes thsExpPublicFade {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}

.ths-exp-public-form h3 {
  margin: 0 0 7px;
  color: var(--ths-exp-text);
  font-size: clamp(25px, 3vw, 36px);
  line-height: 1.05;
  letter-spacing: -.045em;
  font-weight: 950;
}

.ths-exp-muted,
.ths-exp-public-form p.ths-exp-muted {
  margin: 0 0 18px;
  color: var(--ths-exp-muted);
  font-size: 15px;
  line-height: 1.5;
}

.ths-exp-wizard-choice-grid,
.ths-exp-wizard-package-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-top: 18px;
}

.ths-exp-wizard-choice-card,
.ths-exp-wizard-package-card {
  position: relative;
  display: block;
  min-height: 140px;
  border: 1px solid #d6e4f2;
  border-radius: 20px;
  background: linear-gradient(180deg, #ffffff, #f8fbff);
  padding: 20px;
  cursor: pointer;
  box-shadow: 0 4px 16px rgba(15,23,42,.05);
  transition: transform .14s ease, border-color .14s ease, box-shadow .14s ease, background .14s ease;
}

.ths-exp-wizard-choice-card:hover,
.ths-exp-wizard-package-card:hover {
  transform: translateY(-2px);
  border-color: rgba(44,153,209,.65);
  box-shadow: 0 16px 34px rgba(15,23,42,.10);
}

.ths-exp-wizard-choice-card.is-selected,
.ths-exp-wizard-package-card.is-selected {
  border-color: var(--ths-exp-blue);
  background: linear-gradient(180deg, #ffffff, #edf8ff);
  box-shadow: 0 0 0 4px rgba(44,153,209,.14), 0 16px 34px rgba(44,153,209,.14);
}

.ths-exp-wizard-choice-card input,
.ths-exp-wizard-package-card input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.ths-exp-wizard-choice-card:after,
.ths-exp-wizard-package-card:after {
  content: "";
  position: absolute;
  right: 16px;
  top: 16px;
  width: 24px;
  height: 24px;
  border-radius: 999px;
  border: 2px solid #cbd5e1;
  background: #fff;
}

.ths-exp-wizard-choice-card.is-selected:after,
.ths-exp-wizard-package-card.is-selected:after {
  content: "âœ“";
  display: flex;
  align-items: center;
  justify-content: center;
  border-color: var(--ths-exp-blue);
  background: var(--ths-exp-blue);
  color: #fff;
  font-size: 15px;
  font-weight: 950;
}

.ths-exp-wizard-choice-card strong,
.ths-exp-wizard-package-card strong {
  display: block;
  max-width: calc(100% - 34px);
  margin-bottom: 8px;
  color: var(--ths-exp-text);
  font-size: 20px;
  line-height: 1.12;
  letter-spacing: -.025em;
  font-weight: 950;
}

.ths-exp-wizard-choice-card span,
.ths-exp-wizard-package-card span,
.ths-exp-wizard-package-card em {
  display: block;
  color: var(--ths-exp-muted);
  font-size: 14px;
  line-height: 1.42;
  font-style: normal;
}

.ths-exp-wizard-package-card em {
  margin-top: 8px;
  color: #0f5f8f;
  font-weight: 900;
}

.ths-exp-wizard-package-meta {
  margin-top: 12px;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.ths-exp-wizard-package-meta span {
  width: max-content;
  padding: 5px 9px;
  border-radius: 999px;
  background: rgba(44,153,209,.10);
  color: #0f5f8f;
  font-weight: 900;
  font-size: 12px;
}

.ths-exp-wizard-package-card.is-hidden {
  display: none;
}

.ths-exp-grid.two {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.ths-exp-field {
  display: block;
  margin: 0 0 16px;
}

.ths-exp-field > span {
  display: block;
  margin-bottom: 7px;
  color: #334155;
  font-size: 13px;
  font-weight: 900;
}

.ths-exp-field input,
.ths-exp-field select,
.ths-exp-field textarea {
  width: 100%;
  max-width: 100%;
  min-height: 46px;
  border: 1px solid #cbd8e6;
  border-radius: 14px;
  background: #fff;
  color: var(--ths-exp-text);
  padding: 11px 13px;
  font-size: 15px;
  box-shadow: 0 1px 2px rgba(15,23,42,.03);
}

.ths-exp-field textarea {
  min-height: 96px;
  resize: vertical;
}

.ths-exp-field input:focus,
.ths-exp-field select:focus,
.ths-exp-field textarea:focus {
  outline: 3px solid rgba(44,153,209,.16);
  border-color: var(--ths-exp-blue);
}

.ths-exp-wizard-slots {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 12px;
  margin-top: 14px;
}

.ths-exp-wizard-slot {
  appearance: none;
  border: 1px solid #cbd8e6;
  border-radius: 16px;
  background: linear-gradient(180deg, #fff, #f8fbff);
  padding: 14px;
  color: var(--ths-exp-text);
  text-align: left;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(15,23,42,.05);
  transition: transform .14s ease, border-color .14s ease, box-shadow .14s ease;
}

.ths-exp-wizard-slot:hover {
  transform: translateY(-1px);
  border-color: var(--ths-exp-blue);
}

.ths-exp-wizard-slot strong {
  display: block;
  font-size: 16px;
  font-weight: 950;
}

.ths-exp-wizard-slot span {
  display: block;
  margin-top: 4px;
  color: var(--ths-exp-muted);
  font-size: 12px;
  line-height: 1.35;
}

.ths-exp-wizard-slot.is-selected {
  border-color: var(--ths-exp-blue);
  box-shadow: 0 0 0 4px rgba(44,153,209,.15), 0 12px 24px rgba(44,153,209,.12);
}

.ths-exp-empty-state,
.ths-exp-public-empty {
  border: 1px dashed #bfd2e6;
  border-radius: 16px;
  background: #f8fbff;
  color: var(--ths-exp-muted);
  padding: 16px;
  line-height: 1.45;
}

.ths-exp-public-empty {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.ths-exp-wizard-addons {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 12px;
}

.ths-exp-wizard-addon-row {
  display: grid;
  grid-template-columns: 1fr 120px;
  gap: 14px;
  align-items: center;
  border: 1px solid #dbe7f3;
  border-radius: 16px;
  background: #fff;
  padding: 14px;
}

.ths-exp-wizard-addon-row span strong,
.ths-exp-wizard-addon-row span em {
  display: block;
}

.ths-exp-wizard-addon-row span em {
  color: var(--ths-exp-muted);
  font-size: 12px;
  font-style: normal;
}

.ths-exp-wizard-addon-row input {
  max-width: 120px;
}

.ths-exp-wizard-review-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  border: 1px solid #b9def3;
  border-radius: 18px;
  background: linear-gradient(180deg, #eff8ff, #ffffff);
  padding: 18px;
  box-shadow: 0 6px 20px rgba(44,153,209,.08);
}

.ths-exp-wizard-review-card strong {
  color: var(--ths-exp-text);
  font-size: 21px;
  font-weight: 950;
}

.ths-exp-wizard-review-card span {
  color: #475569;
  line-height: 1.45;
}

.ths-exp-public-terms {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  margin-top: 18px;
  padding: 14px;
  border-radius: 16px;
  background: #fff8e6;
  border: 1px solid #fde68a;
}

.ths-exp-public-terms input {
  width: auto;
  min-height: 0;
  margin-top: 4px;
}

.ths-exp-public-form .ths-exp-wizard-summary {
  position: relative;
  background: linear-gradient(180deg, #f8fbff, #ffffff);
  border-left: 1px solid var(--ths-exp-line);
  padding: 22px;
  display: flex;
  flex-direction: column;
  gap: 9px;
}

.ths-exp-public-form .ths-exp-wizard-summary:before {
  content: "Booking Summary";
  display: block;
  margin-bottom: 4px;
  color: var(--ths-exp-text);
  font-size: 20px;
  font-weight: 950;
  letter-spacing: -.025em;
}

.ths-exp-public-form .ths-exp-wizard-summary > strong {
  display: none;
}

.ths-exp-public-form .ths-exp-wizard-summary span {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: baseline;
  color: #475569;
  font-size: 13px;
  line-height: 1.35;
  border-top: 1px solid #e5eef7;
  padding-top: 9px;
}

.ths-exp-public-form .ths-exp-wizard-summary span:first-of-type {
  border-top: 0;
}

.ths-exp-wizard-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 16px 18px;
  border-top: 1px solid var(--ths-exp-line);
  background: #fff;
}

.ths-exp-wizard-footnote {
  color: var(--ths-exp-muted);
  font-size: 13px;
}

.ths-exp-wizard-footer-actions {
  display: flex;
  gap: 10px;
  align-items: center;
}

.ths-exp-public-booking .button,
.ths-exp-public-form .button,
.ths-exp-wizard-footer .button {
  min-height: 44px;
  border: 1px solid #cbd8e6;
  border-radius: 14px;
  background: #fff;
  color: var(--ths-exp-text);
  padding: 10px 16px;
  font-weight: 950;
  text-decoration: none;
  cursor: pointer;
  box-shadow: 0 1px 2px rgba(15,23,42,.04);
}

.ths-exp-public-booking .button:hover,
.ths-exp-public-form .button:hover,
.ths-exp-wizard-footer .button:hover {
  border-color: var(--ths-exp-blue);
}

.ths-exp-public-booking .button-primary,
.ths-exp-public-form .button-primary,
.ths-exp-wizard-footer .button-primary {
  background: var(--ths-exp-blue);
  border-color: var(--ths-exp-blue);
  color: #fff;
  box-shadow: 0 12px 24px rgba(44,153,209,.24);
}

.ths-exp-public-booking .button:disabled,
.ths-exp-public-form .button:disabled,
.ths-exp-wizard-footer .button:disabled {
  opacity: .48;
  cursor: not-allowed;
  box-shadow: none;
}

.ths-exp-wizard-finish {
  display: none;
}

.ths-exp-wizard-finish.is-visible {
  display: inline-flex;
  align-items: center;
}

.ths-exp-wizard-validation {
  border-left: 4px solid var(--ths-exp-danger);
  background: #fff5f5;
  border-radius: 14px;
  padding: 11px 13px;
  margin: 0 0 16px;
  color: #991b1b;
  font-weight: 800;
}

.ths-exp-public-message {
  max-width: 1180px;
  margin: 24px auto 0;
  border-radius: 18px;
  padding: 15px 17px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}

.ths-exp-public-message.success {
  border: 1px solid #bbf7d0;
  background: #f0fdf4;
  color: #166534;
}

.ths-exp-public-message.error {
  border: 1px solid #fecaca;
  background: #fef2f2;
  color: #991b1b;
}

.ths-exp-public-message strong {
  font-size: 16px;
}

.ths-exp-small {
  margin-top: 7px;
  color: var(--ths-exp-muted);
  font-size: 12px;
}

.ths-exp-wizard-guest-field [data-ths-exp-wizard-guest-note].is-warning {
  display: block;
  color: #991b1b;
  background: #fff5f5;
  border-left: 4px solid var(--ths-exp-danger);
  border-radius: 12px;
  padding: 9px 11px;
  margin-top: 10px;
  font-weight: 900;
}

/* Divi/theme guardrails: keep shortcode from inheriting awkward module text spacing. */
.et_pb_module .ths-exp-public-booking h2,
.et_pb_module .ths-exp-public-booking h3,
.et_pb_module .ths-exp-public-booking p,
.entry-content .ths-exp-public-booking h2,
.entry-content .ths-exp-public-booking h3,
.entry-content .ths-exp-public-booking p {
  padding-bottom: 0;
}

@media (max-width: 980px) {
  .ths-exp-public-form .ths-exp-wizard-progress {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }

  .ths-exp-public-form .ths-exp-wizard-body {
    grid-template-columns: 1fr;
  }

  .ths-exp-public-form .ths-exp-wizard-summary {
    border-left: 0;
    border-top: 1px solid var(--ths-exp-line);
  }
}

@media (max-width: 720px) {
  .ths-exp-public-booking {
    margin: 18px auto;
    padding: 0 12px;
  }

  .ths-exp-public-hero {
    padding: 24px 20px;
    border-radius: 22px;
  }

  .ths-exp-public-form .ths-exp-wizard-progress {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .ths-exp-public-form .ths-exp-wizard-main {
    padding: 20px;
  }

  .ths-exp-wizard-choice-grid,
  .ths-exp-wizard-package-grid,
  .ths-exp-grid.two {
    grid-template-columns: 1fr;
  }

  .ths-exp-wizard-addon-row {
    grid-template-columns: 1fr;
  }

  .ths-exp-wizard-footer {
    align-items: stretch;
    flex-direction: column;
  }

  .ths-exp-wizard-footer-actions {
    width: 100%;
    justify-content: space-between;
  }

  .ths-exp-wizard-footer-actions .button {
    flex: 1;
    text-align: center;
  }
}

/* Sprint Package Expansion */
.ths-exp-wizard-package-meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:10px;
}
.ths-exp-wizard-package-meta span{
  display:inline-flex;
  align-items:center;
  padding:5px 9px;
  border-radius:999px;
  background:rgba(44,153,209,.10);
  color:#075985;
  font-size:12px;
  font-weight:800;
}
.ths-exp-wizard-package-card em{
  display:block;
  margin-top:8px;
}

/* Sprint 8B: public WooCommerce payment choice */
.ths-exp-public-payment-choice {
    margin: 18px 0;
    padding: 16px;
    border: 1px solid rgba(44,153,209,.35);
    border-radius: 16px;
    background: linear-gradient(135deg, rgba(44,153,209,.13), rgba(8,18,30,.72));
    color: #fff;
}
.ths-exp-public-payment-choice > strong { display:block; margin-bottom:10px; color:#fff; }
.ths-exp-public-payment-choice label {
    display:flex;
    align-items:center;
    gap:10px;
    padding:10px 12px;
    margin:8px 0;
    border:1px solid rgba(255,255,255,.12);
    border-radius:12px;
    background:rgba(255,255,255,.05);
    cursor:pointer;
}
.ths-exp-public-payment-choice input { accent-color:#2C99D1; }


/* Sprint 8C confirmation polish */
.ths-exp-public-confirmation {
  border-color: rgba(44,153,209,.28) !important;
  background: linear-gradient(135deg, #f8fcff 0%, #eef9ff 100%) !important;
  color: var(--ths-exp-text) !important;
  box-shadow: 0 18px 42px rgba(15,23,42,.08);
}

.ths-exp-confirmation-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 10px 0;
}

.ths-exp-confirmation-grid div {
  border: 1px solid rgba(148,163,184,.3);
  border-radius: 14px;
  background: rgba(255,255,255,.86);
  padding: 10px 12px;
}

.ths-exp-confirmation-grid dt {
  margin: 0 0 4px;
  color: var(--ths-exp-muted);
  font-size: 11px;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.ths-exp-confirmation-grid dd {
  margin: 0;
  color: var(--ths-exp-text);
  font-weight: 900;
}

@media (max-width: 760px) {
  .ths-exp-confirmation-grid {
    grid-template-columns: 1fr;
  }
}

/* Sprint 8D: Public booking polish and QA refinements */
.ths-exp-public-form .ths-exp-wizard-summary.is-empty {
  justify-content: flex-start;
}

.ths-exp-public-form .ths-exp-wizard-summary.is-empty span {
  display: block;
  border-top: 0;
  padding: 13px 14px;
  border-radius: 16px;
  background: rgba(44,153,209,.08);
  color: #46627f;
  font-weight: 800;
}

.ths-exp-public-form .ths-exp-wizard-summary span b {
  color: #24364a;
  font-weight: 950;
}

.ths-exp-wizard-slot em {
  display: inline-flex;
  margin-top: 9px;
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(44,153,209,.11);
  color: #0f5f8f;
  font-size: 11px;
  font-style: normal;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: .03em;
}

.ths-exp-wizard-slot.is-selected em {
  background: var(--ths-exp-blue);
  color: #fff;
}

.ths-exp-public-payment-choice {
  background:
    radial-gradient(circle at top left, rgba(44,153,209,.25), transparent 32%),
    linear-gradient(135deg, #08111f 0%, #101b2e 100%);
  box-shadow: 0 16px 32px rgba(8,17,31,.12);
}

.ths-exp-public-payment-choice label:has(input:checked) {
  border-color: rgba(44,153,209,.65);
  background: rgba(44,153,209,.18);
  box-shadow: inset 0 0 0 1px rgba(44,153,209,.25);
}

.ths-exp-public-trust-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 16px 0 0;
}

.ths-exp-public-trust-strip div {
  border: 1px solid #dbe7f3;
  border-radius: 18px;
  background: linear-gradient(180deg, #ffffff, #f7fbff);
  padding: 15px 16px;
  box-shadow: 0 8px 22px rgba(15,23,42,.05);
}

.ths-exp-public-trust-strip strong,
.ths-exp-public-trust-strip span {
  display: block;
}

.ths-exp-public-trust-strip strong {
  color: var(--ths-exp-text);
  font-size: 14px;
  font-weight: 950;
}

.ths-exp-public-trust-strip span {
  margin-top: 4px;
  color: var(--ths-exp-muted);
  font-size: 13px;
  line-height: 1.35;
}

.ths-exp-public-form .ths-exp-wizard-step[data-ths-exp-wizard-step="4"] .ths-exp-field {
  max-width: 360px;
}

.ths-exp-public-form .ths-exp-wizard-step[data-ths-exp-wizard-step="7"] .ths-exp-wizard-review-card + .ths-exp-public-payment-choice {
  margin-top: 16px;
}

@media (min-width: 981px) {
  .ths-exp-public-form .ths-exp-wizard-summary {
    position: sticky;
    top: 24px;
    align-self: start;
    max-height: calc(100vh - 48px);
    overflow: auto;
  }
}

@media (max-width: 980px) {
  .ths-exp-public-trust-strip {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  .ths-exp-public-form .ths-exp-wizard-progress {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 6px;
  }

  .ths-exp-public-form .ths-exp-wizard-progress button {
    min-width: 0;
    font-size: 0;
    gap: 0;
    padding: 6px 0;
    min-height: 40px;
  }

  .ths-exp-public-form .ths-exp-wizard-progress button span {
    font-size: 12px;
    width: 22px;
    height: 22px;
  }

  .ths-exp-public-form .ths-exp-wizard-summary span {
    grid-template-columns: 1fr;
    gap: 4px;
  }

  .ths-exp-public-payment-choice label {
    align-items: flex-start;
  }
}

/* Sprint 8F priced add-ons */
.ths-exp-wizard-addon-row em{font-weight:700;color:#2C99D1}.ths-exp-wizard-summary span b{font-weight:900}

/* Sprint 9A: richer public add-on rows */
.ths-exp-wizard-addon-row{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center}
.ths-exp-addon-thumb{width:44px;height:44px;border-radius:12px;background-size:cover;background-position:center;border:1px solid rgba(255,255,255,.16);box-shadow:0 8px 22px rgba(0,0,0,.22)}
.ths-exp-addon-desc,.ths-exp-addon-limit{display:block;margin-top:3px;font-size:12px;line-height:1.35;opacity:.78;font-style:normal}
.ths-exp-addon-limit{color:#7dd3fc;font-weight:700;opacity:1}
@media (max-width:640px){.ths-exp-wizard-addon-row{grid-template-columns:1fr}.ths-exp-addon-thumb{display:none}.ths-exp-wizard-addon-row input[type=number]{width:100%}}

/* Sprint 9C â€” public single-booking waiver signing */
.ths-exp-public-waiver-body {
    margin: 0;
    background: radial-gradient(circle at top left, rgba(44,153,209,.24), transparent 36%), #071827;
    color: #e5edf7;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.ths-exp-public-waiver-page {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}
.ths-exp-public-waiver-card {
    width: min(860px, 100%);
    padding: clamp(20px, 4vw, 36px);
    border: 1px solid rgba(148, 163, 184, .22);
    border-radius: 28px;
    background: linear-gradient(180deg, rgba(15, 23, 42, .98), rgba(11, 31, 52, .98));
    box-shadow: 0 28px 90px rgba(0,0,0,.35);
}
.ths-exp-public-waiver-brand span,
.ths-exp-public-waiver-card .ths-exp-small {
    color: #9ccfee;
}
.ths-exp-public-waiver-brand h1 {
    margin: 6px 0 22px;
    color: #fff;
    font-size: clamp(28px, 5vw, 44px);
    letter-spacing: -.03em;
}
.ths-exp-waiver-booking-summary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 0 0 22px;
}
.ths-exp-waiver-booking-summary div {
    padding: 14px;
    border: 1px solid rgba(148, 163, 184, .2);
    border-radius: 16px;
    background: rgba(15, 23, 42, .58);
}
.ths-exp-waiver-booking-summary dt {
    color: #9fb4cd;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .06em;
}
.ths-exp-waiver-booking-summary dd {
    margin: 5px 0 0;
    color: #fff;
    font-weight: 700;
}
.ths-exp-public-waiver-form {
    display: grid;
    gap: 16px;
}
.ths-exp-public-waiver-form label {
    display: grid;
    gap: 8px;
    color: #dbeafe;
    font-weight: 700;
}
.ths-exp-public-waiver-form input[type="text"],
.ths-exp-public-waiver-form select {
    width: 100%;
    min-height: 46px;
    border: 1px solid rgba(148, 163, 184, .36);
    border-radius: 14px;
    padding: 10px 12px;
    background: rgba(255,255,255,.96);
    color: #0f172a;
}
.ths-exp-waiver-policy {
    max-height: 280px;
    overflow: auto;
    padding: 18px;
    border: 1px solid rgba(44,153,209,.36);
    border-radius: 18px;
    background: rgba(2, 6, 23, .35);
    color: #e2e8f0;
}
.ths-exp-waiver-policy h2 {
    margin-top: 0;
    color: #fff;
}
.ths-exp-waiver-checkbox {
    display: flex !important;
    grid-template-columns: none !important;
    align-items: flex-start;
    gap: 10px !important;
    padding: 14px;
    border-radius: 16px;
    background: rgba(44,153,209,.14);
}
.ths-exp-waiver-checkbox input {
    margin-top: 4px;
}
.ths-exp-signature-pad-wrap {
    border: 2px dashed rgba(44,153,209,.65);
    border-radius: 18px;
    background: #fff;
    overflow: hidden;
}
.ths-exp-signature-pad-wrap canvas {
    display: block;
    width: 100%;
    height: 180px;
    touch-action: none;
}
.ths-exp-public-waiver-form .button,
.ths-exp-public-waiver-form .button-primary,
.ths-exp-public-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 10px 18px;
    border: 0;
    border-radius: 999px;
    background: #e2e8f0;
    color: #0f172a;
    font-weight: 800;
    text-decoration: none;
    cursor: pointer;
}
.ths-exp-public-waiver-form .button-primary,
.ths-exp-public-button {
    background: #2C99D1;
    color: #fff;
}
.ths-exp-confirmation-actions {
    margin: 14px 0 8px;
}
@media (max-width: 640px) {
    .ths-exp-public-waiver-page { padding: 14px; align-items: flex-start; }
    .ths-exp-waiver-booking-summary { grid-template-columns: 1fr; }
}


/* Sprint 9D: public booking management / self-reschedule */
.ths-exp-public-manage-wrap .ths-exp-public-waiver-card h2{margin-top:26px;color:#fff;font-size:22px}
.ths-exp-public-manage-date-form{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin:18px 0;padding:14px;border:1px solid rgba(44,153,209,.28);border-radius:18px;background:rgba(255,255,255,.04)}
.ths-exp-public-manage-date-form label{display:flex;flex-direction:column;gap:6px;color:#b8cad8;font-weight:700}
.ths-exp-public-manage-date-form input{min-height:42px;border-radius:12px;border:1px solid rgba(255,255,255,.16);background:#071521;color:#fff;padding:0 12px}
.ths-exp-public-manage-date-form button,.ths-exp-public-waiver-submit{border:0;border-radius:999px;background:#2C99D1;color:#fff;font-weight:800;padding:12px 18px;cursor:pointer;box-shadow:0 10px 24px rgba(44,153,209,.28)}
.ths-exp-public-slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;margin:16px 0 20px}
.ths-exp-public-slot-option{display:flex;flex-direction:column;gap:4px;position:relative;padding:14px 14px 14px 38px;border:1px solid rgba(255,255,255,.14);border-radius:16px;background:rgba(255,255,255,.05);color:#fff;cursor:pointer;transition:border-color .18s ease,transform .18s ease,background .18s ease}
.ths-exp-public-slot-option:hover{transform:translateY(-1px);border-color:rgba(44,153,209,.55);background:rgba(44,153,209,.12)}
.ths-exp-public-slot-option input{position:absolute;left:14px;top:17px}
.ths-exp-public-slot-option span{font-size:12px;color:#9fb4c3}
.ths-exp-public-slot-option.is-current{opacity:.55;cursor:not-allowed;background:rgba(255,255,255,.03)}
.ths-exp-public-success,.ths-exp-public-error,.ths-exp-public-empty{margin:14px 0;padding:12px 14px;border-radius:14px;font-weight:700}
.ths-exp-public-success{background:rgba(34,197,94,.12);border:1px solid rgba(34,197,94,.35);color:#bbf7d0}
.ths-exp-public-error{background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.35);color:#fecaca}
.ths-exp-public-empty{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);color:#b8cad8}
@media(max-width:640px){.ths-exp-public-slot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ths-exp-public-manage-date-form{display:block}.ths-exp-public-manage-date-form button{margin-top:10px;width:100%}}

/* Experience filter chips (public wizard, step 1) */
.ths-exp-public-form .ths-exp-wizard-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 18px;
}
.ths-exp-public-form .ths-exp-wizard-filter-chip {
  position: relative;
  display: inline-flex;
  align-items: center;
  cursor: pointer;
}
.ths-exp-public-form .ths-exp-wizard-filter-chip input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.ths-exp-public-form .ths-exp-wizard-filter-chip span {
  display: inline-flex;
  align-items: center;
  padding: 8px 16px;
  border: 1px solid var(--ths-exp-line);
  border-radius: 999px;
  background: #fff;
  color: var(--ths-exp-text);
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
  transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.ths-exp-public-form .ths-exp-wizard-filter-chip:hover span {
  border-color: var(--ths-exp-blue);
  color: var(--ths-exp-blue);
}
.ths-exp-public-form .ths-exp-wizard-filter-chip input:checked + span {
  background: var(--ths-exp-blue);
  border-color: var(--ths-exp-blue);
  color: #fff;
}
.ths-exp-public-form .ths-exp-wizard-filter-chip input:focus-visible + span {
  outline: 2px solid var(--ths-exp-blue);
  outline-offset: 2px;
}

/* Honeypot field - visually removed but present for bots */
.ths-exp-hp {
  position: absolute !important;
  left: -9999px !important;
  top: auto !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

/* ============================================================
   Compact Booking Summary â€” fix label/value overlap + height
   Label stays one line; value wraps right in the remaining space.
   ============================================================ */
.ths-exp-public-form .ths-exp-wizard-summary { gap: 6px; padding: 18px; }
.ths-exp-public-form .ths-exp-wizard-summary:before { font-weight: 800; font-size: 18px; }
.ths-exp-public-form .ths-exp-wizard-summary span {
  grid-template-columns: auto minmax(0, 1fr);
  gap: 14px;
  text-align: right;
  padding-top: 6px;
  font-size: 12.5px;
  line-height: 1.3;
}
.ths-exp-public-form .ths-exp-wizard-summary span b {
  text-align: left;
  white-space: nowrap;
  font-weight: 700;
  color: #64748b;
}
/* the big Total row can stay emphasized */
.ths-exp-public-form .ths-exp-wizard-summary span b { letter-spacing: -.005em; }

/* mobile: stack label over value, left aligned, very tight */
@media (max-width: 720px) {
  .ths-exp-public-form .ths-exp-wizard-summary span {
    grid-template-columns: 1fr;
    text-align: left;
    gap: 1px;
  }
  .ths-exp-public-form .ths-exp-wizard-summary span b { white-space: normal; }
}
/* ============================================================
   DISPLAY CASE THEME (v1.0.22.0)
   ------------------------------------------------------------
   The public booking flow was built light - dark text on soft
   blue panels - while the rest of the site is the dark Display
   Case. The brand blue already matched; nothing around it did.

   This section retones the flow to the storefront palette. It is
   appended rather than edited in so the original light theme is
   still readable above, and reverting means deleting from here
   down.

   Tokens are the same ones the storefront uses:
     ink   #0a0d12   panel #11161e   raised #161d27
     text  #e9eef4   muted #8b97a4   ice    #2C99D1
   ============================================================ */

.ths-exp-public-booking{
  --ths-exp-navy: #0a0d12;
  --ths-exp-navy-2: #0c1017;
  --ths-exp-text: #e9eef4;
  /* #8b97a4 came from the storefront, where it sits on near-black. The
     booking panels are lighter than that, so the same grey reads as dim.
     Lifted for legibility - contrast matters more here than palette purity,
     because people are reading prices and dates, not browsing. */
  --ths-exp-muted: #c2cedb;
  --ths-exp-line: rgba(197,214,229,.14);
  --ths-exp-soft: #11161e;
  --ths-exp-soft-blue: #161d27;
  --ths-exp-blue-dark: #7fc7ec;
  --ths-exp-shadow: 0 22px 54px rgba(0,0,0,.45);
  --ths-panel: #11161e;
  --ths-ink-2: #0c1017;
  --ths-raised: #161d27;
  --ths-line-2: rgba(197,214,229,.24);
  --ths-ice-soft: #7fc7ec;
  color: var(--ths-exp-text);
  background: linear-gradient(180deg,#0a0d12,#0c1017);
}

/* ---- shell ---- */
.ths-exp-public-form{
  background: linear-gradient(180deg,var(--ths-panel),var(--ths-ink-2)) !important;
  border-color: var(--ths-exp-line) !important;
  box-shadow: var(--ths-exp-shadow) !important;
}

/* ---- step rail ---- */
.ths-exp-public-form .ths-exp-wizard-progress{
  background: var(--ths-ink-2) !important;
  border-color: var(--ths-exp-line) !important;
}
.ths-exp-public-form .ths-exp-wizard-progress button{
  background: var(--ths-raised) !important;
  border-color: var(--ths-exp-line) !important;
  color: var(--ths-exp-muted) !important;
}
.ths-exp-public-form .ths-exp-wizard-progress button.is-active{
  background: var(--ths-exp-blue) !important;
  border-color: var(--ths-exp-blue) !important;
  color: #04121c !important;
}
.ths-exp-public-form .ths-exp-wizard-progress button.is-active span{
  background: #04121c !important; color: #fff !important;
}
.ths-exp-public-form .ths-exp-wizard-progress button.is-complete{
  color: var(--ths-ice-soft) !important;
  border-color: rgba(44,153,209,.45) !important;
}

/* ---- selectable cards ---- */
.ths-exp-wizard-choice-card,
.ths-exp-wizard-package-card,
.ths-exp-wizard-slot,
.ths-exp-wizard-addon-row,
.ths-exp-signature-pad-wrap{
  background: linear-gradient(180deg,var(--ths-panel),var(--ths-ink-2)) !important;
  border-color: var(--ths-exp-line) !important;
  color: var(--ths-exp-text) !important;
}
.ths-exp-wizard-choice-card.is-selected,
.ths-exp-wizard-package-card.is-selected,
.ths-exp-wizard-slot.is-selected,
.ths-exp-wizard-addon-row.is-selected{
  background: linear-gradient(180deg,rgba(44,153,209,.16),rgba(44,153,209,.05)) !important;
  border-color: var(--ths-exp-blue) !important;
}
.ths-exp-wizard-choice-card:after,
.ths-exp-wizard-package-card:after{
  background: var(--ths-raised) !important;
  border-color: var(--ths-line-2) !important;
  color: transparent !important;
}
.ths-exp-wizard-choice-card.is-selected:after,
.ths-exp-wizard-package-card.is-selected:after{
  background: var(--ths-exp-blue) !important;
  border-color: var(--ths-exp-blue) !important;
  color: #04121c !important;
}

/* Signature has to stay light - a dark pad with a dark stroke is
   an invisible signature. */
.ths-exp-signature-pad-wrap canvas{ background:#fff !important; border-radius:10px; }

/* ---- fields ---- */
.ths-exp-field input,
.ths-exp-field select,
.ths-exp-field textarea{
  background: var(--ths-ink-2) !important;
  border-color: var(--ths-line-2) !important;
  color: var(--ths-exp-text) !important;
}
.ths-exp-field input::placeholder,
.ths-exp-field textarea::placeholder{ color:#63788C !important; }
.ths-exp-field input:focus,
.ths-exp-field select:focus,
.ths-exp-field textarea:focus{
  border-color: var(--ths-exp-blue) !important;
  box-shadow: 0 0 0 3px rgba(44,153,209,.22) !important;
}
.ths-exp-field label{ color: var(--ths-exp-text) !important; }

/* ---- review, summary, terms ---- */
.ths-exp-wizard-review-card,
.ths-exp-public-form .ths-exp-wizard-summary{
  background: linear-gradient(180deg,rgba(44,153,209,.10),rgba(44,153,209,.03)) !important;
  border-color: rgba(44,153,209,.32) !important;
  color: var(--ths-exp-text) !important;
}
.ths-exp-public-terms{
  background: rgba(226,178,77,.10) !important;
  border-color: rgba(226,178,77,.42) !important;
  color: #f4e8d0 !important;
}

/* ---- footer + buttons ---- */
.ths-exp-wizard-footer{
  background: var(--ths-ink-2) !important;
  border-color: var(--ths-exp-line) !important;
}
.ths-exp-public-booking .button,
.ths-exp-public-form .button,
.ths-exp-wizard-footer .button{
  background: var(--ths-raised) !important;
  border-color: var(--ths-line-2) !important;
  color: var(--ths-exp-text) !important;
}
.ths-exp-public-booking .button:hover,
.ths-exp-public-form .button:hover,
.ths-exp-wizard-footer .button:hover{
  border-color: var(--ths-exp-blue) !important;
  color: #fff !important;
}
.ths-exp-public-booking .button-primary,
.ths-exp-public-form .button-primary,
.ths-exp-wizard-footer .button-primary{
  background: var(--ths-exp-blue) !important;
  border-color: var(--ths-exp-blue) !important;
  color: #04121c !important;
}
.ths-exp-public-booking .button-primary:hover,
.ths-exp-public-form .button-primary:hover,
.ths-exp-wizard-footer .button-primary:hover{
  background: var(--ths-ice-soft) !important;
  color: #04121c !important;
}

/* ---- filter chips ---- */
.ths-exp-public-form .ths-exp-wizard-filter-chip span{
  background: var(--ths-raised) !important;
  border-color: var(--ths-line-2) !important;
  color: var(--ths-exp-text) !important;
}
.ths-exp-public-form .ths-exp-wizard-filter-chip input:checked + span{
  background: var(--ths-exp-blue) !important;
  border-color: var(--ths-exp-blue) !important;
  color: #04121c !important;
}

/* ---- validation + notices ---- */
.ths-exp-wizard-validation,
.ths-exp-wizard-guest-field [data-ths-exp-wizard-guest-note].is-warning{
  background: rgba(239,68,68,.10) !important;
  border-color: rgba(239,68,68,.45) !important;
  color: #FCA5A5 !important;
}

/* ---- trust strip ---- */
.ths-exp-public-trust-strip div{
  background: linear-gradient(180deg,var(--ths-panel),var(--ths-ink-2)) !important;
  border-color: var(--ths-exp-line) !important;
  color: var(--ths-exp-text) !important;
}
.ths-exp-public-trust-strip div span,
.ths-exp-public-trust-strip div p{ color: var(--ths-exp-muted) !important; }

/* ---- generic text that assumed a light background ---- */
.ths-exp-public-form h2,
.ths-exp-public-form h3,
.ths-exp-wizard-choice-card strong,
.ths-exp-wizard-package-card strong,
.ths-exp-wizard-review-card strong{ color:#fff !important; }
.ths-exp-public-form p,
.ths-exp-public-form small,
.ths-exp-wizard-choice-card span,
.ths-exp-wizard-package-card span{ color: var(--ths-exp-muted) !important; }

/* ---- Booking Summary text (v1.0.22.1) ----
   The summary hardcodes slate greys (#475569, #24364a, #46627f, #64748b)
   that were chosen for a white panel. On the dark panel they read as
   almost black. Restated here against the dark background. */
.ths-exp-public-form .ths-exp-wizard-summary:before{
  color: #fff !important;
}
.ths-exp-public-form .ths-exp-wizard-summary span{
  color: var(--ths-exp-muted) !important;
  border-top-color: rgba(197,214,229,.14) !important;
}
.ths-exp-public-form .ths-exp-wizard-summary span b{
  color: var(--ths-exp-text) !important;
}
.ths-exp-public-form .ths-exp-wizard-summary.is-empty span{
  background: rgba(44,153,209,.10) !important;
  color: var(--ths-ice-soft) !important;
}
/* Total row: the number people are looking for. */
.ths-exp-public-form .ths-exp-wizard-summary span:last-of-type,
.ths-exp-public-form .ths-exp-wizard-summary span:last-of-type b{
  color: #fff !important;
}

/* ---- Legibility pass (v1.0.22.2) ----
   Secondary text across the flow was inheriting greys chosen for a white
   panel. Everything here is raised to read comfortably on the dark one. */
.ths-exp-public-booking,
.ths-exp-public-form,
.ths-exp-public-form p,
.ths-exp-public-form small,
.ths-exp-public-form label,
.ths-exp-public-form li{
  color: #dde5ee !important;
}
.ths-exp-public-form .ths-exp-wizard-summary span{
  color: #cbd6e2 !important;
}
.ths-exp-public-form .ths-exp-wizard-summary span b,
.ths-exp-public-form .ths-exp-wizard-summary:before,
.ths-exp-public-form .ths-exp-wizard-summary span:last-of-type,
.ths-exp-public-form .ths-exp-wizard-summary span:last-of-type b{
  color: #ffffff !important;
}
.ths-exp-wizard-choice-card span,
.ths-exp-wizard-package-card span,
.ths-exp-wizard-slot span,
.ths-exp-wizard-addon-row span,
.ths-exp-public-trust-strip div span,
.ths-exp-public-trust-strip div p{
  color: #cbd6e2 !important;
}
.ths-exp-wizard-choice-card strong,
.ths-exp-wizard-package-card strong,
.ths-exp-wizard-slot strong,
.ths-exp-wizard-addon-row strong,
.ths-exp-wizard-review-card strong,
.ths-exp-wizard-review-card,
.ths-exp-public-form h2,
.ths-exp-public-form h3,
.ths-exp-public-form h4{
  color: #ffffff !important;
}
.ths-exp-field label{ color:#ffffff !important; }
.ths-exp-field small,
.ths-exp-field .description{ color:#c2cedb !important; }

/* 1.0.23.0 — mini golf adults / kids. [hidden] must beat .ths-exp-field's own display. */
[data-ths-exp-golf-split][hidden],
[data-ths-exp-guest-count-field][hidden],
[data-ths-exp-golf-split-warn][hidden]{display:none !important}
.ths-exp-golf-split{margin-top:4px}
.ths-exp-golf-split input[type="number"]{font-size:22px;font-weight:800;text-align:center}
.ths-exp-golf-split [data-ths-exp-golf-split-note]{color:#c2cedb;margin-top:6px}
.ths-exp-golf-split [data-ths-exp-golf-split-warn]{display:block;color:#ffb4b4;font-weight:800;margin-top:8px}
.ths-exp-public-booking .ths-exp-golf-split .ths-exp-field > span{color:#e9eef4 !important;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}

/* 1.0.28.3: readable labels and review text on the dark booking form.
   An old light-theme rule left every field label, the review lines and the
   checkbox sentence slate grey on near-black. */
.ths-exp-public-booking .ths-exp-field > span,
.ths-exp-public-booking .ths-exp-field > label{color:#e9eef4 !important}
.ths-exp-public-booking .ths-exp-wizard-review-card span{color:#e9eef4 !important;font-size:16px !important;line-height:1.5}
.ths-exp-public-booking .ths-exp-wizard-review-card span b{color:#fff !important}
.ths-exp-public-booking .ths-exp-public-terms span{color:#f4e8d0 !important;font-size:15px !important;font-weight:700}
.ths-exp-public-booking .ths-exp-wizard-step h3:focus{outline:none !important}
.ths-exp-public-booking .ths-exp-split-label{display:block;margin-bottom:8px;color:#e9eef4 !important;font-size:12px !important;font-weight:800;letter-spacing:.08em;text-transform:uppercase}

/* 1.0.28.3: − / + buttons for players and guests (number arrows don't show
   on phones, and were hidden on the dark form). */
.ths-exp-public-booking .ths-exp-stepper{display:flex;align-items:center;gap:10px;max-width:260px}
.ths-exp-public-booking .ths-exp-stepper button{appearance:none;flex:0 0 52px;width:52px;height:52px;margin:0;padding:0;border-radius:14px;border:1px solid rgba(79,195,255,.45) !important;background:rgba(44,153,209,.16) !important;color:#fff !important;font-family:inherit !important;font-size:26px !important;font-weight:800;line-height:1;cursor:pointer;box-shadow:none !important}
.ths-exp-public-booking .ths-exp-stepper button:hover:not(:disabled){background:rgba(44,153,209,.32) !important;border-color:#4fc3ff !important}
.ths-exp-public-booking .ths-exp-stepper button:disabled{opacity:.35;cursor:not-allowed}
.ths-exp-public-booking .ths-exp-stepper input[type="number"]{flex:1 1 auto;min-width:0;height:52px;margin:0 !important;text-align:center;font-size:24px !important;font-weight:900 !important;color:#fff !important;-moz-appearance:textfield}
.ths-exp-public-booking .ths-exp-stepper input::-webkit-outer-spin-button,
.ths-exp-public-booking .ths-exp-stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}

/* 1.0.29.1: booking wizard - Morning / Afternoon / Evening tabs over
   compact time buttons, instead of ~70 tall cards down the page. */
.ths-exp-wizard-slots.is-grouped{display:block}
.ths-exp-public-booking .ths-exp-dayparts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 12px}
.ths-exp-public-booking .ths-exp-daypart{appearance:none;display:flex;flex-direction:column;align-items:center;gap:2px;min-height:52px;padding:8px 6px;margin:0;border-radius:14px;border:1px solid var(--ths-exp-line) !important;background:transparent !important;color:#e9eef4 !important;font-family:inherit !important;cursor:pointer;box-shadow:none !important}
.ths-exp-public-booking .ths-exp-daypart{min-width:0}
.ths-exp-public-booking .ths-exp-daypart strong{max-width:100%;font-size:14px !important;font-weight:900;letter-spacing:.04em;text-transform:uppercase;color:inherit !important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ths-exp-public-booking .ths-exp-daypart span{font-size:11px !important;color:#c2cedb !important}
.ths-exp-public-booking .ths-exp-daypart:hover{border-color:#7fc7ec !important}
.ths-exp-public-booking .ths-exp-daypart[aria-selected="true"]{border-color:#4fc3ff !important;background:rgba(79,195,255,.12) !important;box-shadow:inset 0 -3px 0 #4fc3ff !important}
.ths-exp-public-booking .ths-exp-daypart-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:8px}
.ths-exp-public-booking .ths-exp-daypart-grid[hidden]{display:none !important}
.ths-exp-public-booking .ths-exp-wizard-slot.is-compact{min-height:46px;padding:8px 4px !important;text-align:center;border-radius:12px;box-shadow:none !important;transform:none !important}
.ths-exp-public-booking .ths-exp-wizard-slot.is-compact strong{font-size:16px !important}
@media (max-width:640px){.ths-exp-public-booking .ths-exp-daypart-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.ths-exp-public-booking .ths-exp-daypart{padding:8px 2px}.ths-exp-public-booking .ths-exp-daypart strong{font-size:14px !important;letter-spacing:0;text-transform:none}}

/* =====================================================================
   1.0.24.0: [ths_experiences_page]
   Scoped to .ths-xp-page. Colours and type carry !important where Divi's
   module styles would otherwise win (see handoff: retoning is not enough).
   ===================================================================== */
.ths-xp-page{--xp-ink:#0a0d12;--xp-panel:#11161e;--xp-raised:#161d27;--xp-line:rgba(197,214,229,.12);--xp-line-2:rgba(197,214,229,.22);--xp-ice:#2C99D1;--xp-ice-soft:#7fc7ec;--xp-text:#e9eef4;--xp-muted:#c2cedb;--xp-gold:#ffc933;--xp-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  display:flex;flex-direction:column;gap:56px;box-sizing:border-box;max-width:1248px;margin:0 auto;padding:56px 24px 64px;
  background:radial-gradient(1100px 480px at 50% -80px,rgba(44,153,209,.26),rgba(10,13,18,0) 70%),var(--xp-ink);
  color:var(--xp-text) !important;font-family:Montserrat,system-ui,sans-serif !important;border-radius:18px}
.ths-xp-page *,.ths-xp-page *::before,.ths-xp-page *::after{box-sizing:border-box}
.ths-xp-page p,.ths-xp-page li,.ths-xp-page span,.ths-xp-page strong{font-family:inherit !important}
.ths-xp-page a{color:var(--xp-ice-soft) !important}
/* 1.0.31.0: the confirmation's Sign Waiver button kept the link colour (light blue on blue). */
.ths-xp-page a.ths-exp-public-button{color:#fff !important}
.ths-xp-page a:hover{color:#bfe5f8 !important}

.ths-xp-hero{display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center}
.ths-xp-eyebrow{font-family:var(--xp-mono) !important;font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--xp-ice-soft) !important;border:1px solid rgba(127,199,236,.4);border-radius:999px;padding:7px 16px}
.ths-xp-eyebrow.is-plain{border:0;padding:0;font-size:11px;letter-spacing:.2em}
.ths-xp-page .ths-xp-headline{margin:0 !important;padding:0 !important;font-size:clamp(40px,7vw,84px) !important;line-height:.95 !important;font-weight:900 !important;font-style:italic;text-transform:uppercase;color:#fff !important;text-shadow:0 0 28px rgba(44,153,209,.55)}
.ths-xp-page .ths-xp-intro{margin:0 !important;padding:0 !important;max-width:720px;font-size:clamp(15px,1.6vw,20px) !important;line-height:1.5 !important;font-weight:600;color:var(--xp-muted) !important}
.ths-xp-jump{display:none;gap:8px;width:100%}
.ths-xp-jump a{flex:1 1 0;display:flex;align-items:center;justify-content:center;min-height:44px;border-radius:10px;background:var(--xp-raised);border:1px solid var(--xp-line-2);color:var(--xp-text) !important;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;text-decoration:none !important}

.ths-xp-tiers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;align-items:stretch}
.ths-xp-tier{--xp-accent:#4fc3ff;display:flex;flex-direction:column;overflow:hidden;border:2px solid var(--xp-accent);border-radius:18px;background:linear-gradient(180deg,var(--xp-panel),var(--xp-ink));box-shadow:0 0 0 1px color-mix(in srgb,var(--xp-accent) 25%,transparent),0 0 36px color-mix(in srgb,var(--xp-accent) 35%,transparent)}
.ths-xp-tier-art{display:block;width:100%;aspect-ratio:314/262;height:auto;object-fit:cover;margin:0 !important;border:0 !important}
.ths-xp-page .ths-xp-tier-name{margin:0 !important;padding:36px 28px 8px !important;font-size:44px !important;line-height:1 !important;font-weight:900 !important;font-style:italic;text-transform:uppercase;color:var(--xp-accent) !important;text-shadow:0 0 22px color-mix(in srgb,var(--xp-accent) 55%,transparent)}
.ths-xp-tier-body{display:flex;flex-direction:column;gap:20px;padding:26px 28px 30px;flex:1 1 auto}
.ths-xp-tier-meta{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 12px}
.ths-xp-tier-kids{font-size:15px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--xp-accent) !important}
.ths-xp-tier-time{font-size:13px;font-weight:700;color:var(--xp-muted) !important}
.ths-xp-page .ths-xp-list{margin:0 !important;padding:0 !important;list-style:none !important;display:flex;flex-direction:column;gap:13px}
.ths-xp-page .ths-xp-list li{display:flex;gap:12px;align-items:flex-start;margin:0 !important;padding:0 !important;font-size:17px !important;font-weight:700;line-height:1.35 !important;color:var(--xp-text) !important;list-style:none !important}
.ths-xp-page .ths-xp-list li::before{content:none !important}
.ths-xp-page .ths-xp-list li.is-star{color:var(--xp-accent) !important}
.ths-xp-ico{flex:0 0 22px;margin-top:1px;color:var(--xp-gold)}
.ths-xp-tier-foot{margin-top:auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;border-top:1px solid var(--xp-line);padding-top:20px}
.ths-xp-price{font-size:clamp(40px,4vw,52px);line-height:1;font-weight:900;font-style:normal;letter-spacing:-.01em;color:var(--xp-text) !important;text-shadow:none}
.ths-xp-page .ths-xp-btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 24px;border-radius:12px;background:var(--xp-accent,var(--xp-ice));color:#07121a !important;font-size:13px !important;font-weight:800 !important;letter-spacing:.08em;text-transform:uppercase;text-decoration:none !important;text-align:center;border:0;transition:filter .15s ease,transform .15s ease}
.ths-xp-page .ths-xp-btn:hover{filter:brightness(1.12);color:#07121a !important}
.ths-xp-page .ths-xp-btn:focus-visible{outline:3px solid #fff;outline-offset:3px}
.ths-xp-page .ths-xp-btn.is-ice{--xp-accent:var(--xp-ice)}
.ths-xp-page .ths-xp-btn.is-ghost{background:transparent;border:2px solid var(--xp-ice-soft);color:var(--xp-text) !important}

.ths-xp-extras{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;border:1px solid rgba(127,199,236,.35);border-radius:18px;padding:30px 36px;background:linear-gradient(180deg,rgba(44,153,209,.12),rgba(17,22,30,.6))}
.ths-xp-page .ths-xp-extras-head{margin:0 !important;padding:0 !important;font-size:clamp(20px,2.4vw,28px) !important;line-height:1.2 !important;font-weight:900;font-style:italic;text-transform:uppercase;color:#fff !important}
.ths-xp-page .ths-xp-extras-head span{color:var(--xp-gold) !important}
.ths-xp-page .ths-xp-extras-text{margin:0 !important;padding:0 !important;font-size:17px !important;font-weight:700;line-height:1.5 !important;color:var(--xp-muted) !important}
.ths-xp-page .ths-xp-extras-text a{font-weight:800}
.ths-xp-page .ths-xp-extras-note{margin:4px 0 0 !important;padding:0 !important;font-size:14px !important;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--xp-gold) !important}

.ths-xp-more{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.ths-xp-col{display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--xp-line-2);border-radius:18px;background:linear-gradient(180deg,var(--xp-panel),var(--xp-ink))}
.ths-xp-col-photo{display:block;width:100%;height:240px;object-fit:cover;margin:0 !important;border:0 !important}
.ths-xp-col-photo.is-icon{display:flex;align-items:center;justify-content:center;color:var(--xp-ice-soft);background:radial-gradient(260px 160px at 50% 50%,rgba(44,153,209,.3),rgba(17,22,30,0) 70%),var(--xp-raised)}
.ths-xp-col-body{display:flex;flex-direction:column;align-items:flex-start;gap:18px;padding:28px 30px 32px;flex:1 1 auto}
.ths-xp-page .ths-xp-col-title{margin:-10px 0 0 !important;padding:0 !important;font-size:40px !important;line-height:1.05 !important;font-weight:900 !important;font-style:italic;text-transform:uppercase;color:#fff !important}
.ths-xp-rates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;width:100%}
.ths-xp-rates div{display:flex;flex-direction:column;gap:2px;border:1px solid var(--xp-line-2);border-radius:14px;padding:16px 18px;background:#0c1017}
.ths-xp-rates span{font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--xp-muted) !important}
.ths-xp-rates strong{font-size:36px;line-height:1.1;font-weight:900;color:#fff !important}
.ths-xp-page .ths-xp-col-text{margin:0 !important;padding:0 !important;font-size:16px !important;font-weight:600;line-height:1.5 !important;color:var(--xp-muted) !important}
.ths-xp-col-body .ths-xp-btn{margin-top:auto}

.ths-xp-book{display:flex;flex-direction:column;gap:18px;scroll-margin-top:90px}
.ths-xp-page .ths-xp-book-title{margin:0 !important;padding:0 !important;font-size:clamp(28px,3.4vw,40px) !important;font-weight:900 !important;font-style:italic;text-transform:uppercase;color:#fff !important;text-align:center}
.ths-xp-book .ths-exp-wizard-form{scroll-margin-top:90px}
.ths-xp-foot{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 28px;font-size:14px;font-weight:700;color:var(--xp-muted) !important}

@media (max-width: 980px){
  .ths-xp-tiers{grid-template-columns:minmax(0,1fr);max-width:560px;margin:0 auto;width:100%}
}
@media (max-width: 820px){
  .ths-xp-more{grid-template-columns:minmax(0,1fr)}
}
@media (max-width: 640px){
  .ths-xp-page{padding:36px 16px 44px;gap:32px;border-radius:0}
  .ths-xp-jump{display:flex}
  .ths-xp-tier-body,.ths-xp-col-body{padding:20px 20px 22px}
  .ths-xp-extras{padding:22px 18px}
  .ths-xp-col-photo{height:200px}
  .ths-xp-rates strong{font-size:24px;white-space:nowrap}
  .ths-xp-rates div{padding:12px 14px}
  .ths-xp-hide-sm{display:none}
  .ths-xp-rates span{font-size:11px;letter-spacing:.04em;white-space:nowrap}
  .ths-xp-col-body .ths-xp-btn{align-self:stretch}
  .ths-xp-page .ths-xp-col-title{font-size:32px !important}
  .ths-xp-tier-foot .ths-xp-btn{flex:1 1 auto}
}
@media (prefers-reduced-motion: reduce){
  .ths-xp-page .ths-xp-btn{transition:none}
}

/* 1.0.24.2: chooser tiles, section title, phone dock. */
.ths-xp-choose{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:-16px}
.ths-xp-pick{display:flex;flex-direction:column;align-items:flex-start;gap:10px;border:1px solid var(--xp-line-2);border-radius:16px;padding:24px 24px 22px;background:linear-gradient(180deg,var(--xp-panel),var(--xp-ink))}
.ths-xp-pick-ico{color:var(--xp-ice-soft)}
.ths-xp-page .ths-xp-pick-title{margin:4px 0 0 !important;padding:0 !important;font-size:26px !important;line-height:1.1 !important;font-weight:900 !important;font-style:italic;text-transform:uppercase;color:#fff !important}
.ths-xp-page .ths-xp-pick-line{margin:0 0 6px !important;padding:0 !important;font-size:15px !important;font-weight:700;line-height:1.4 !important;color:var(--xp-muted) !important}
.ths-xp-pick .ths-xp-btn{align-self:stretch;margin-top:auto}
.ths-xp-page .ths-xp-pick-more{align-self:center;font-size:13px !important;font-weight:800;letter-spacing:.06em;text-transform:uppercase;text-decoration:none !important;padding:6px 8px}
.ths-xp-anchor{display:flex;flex-direction:column;gap:28px}
.ths-xp-anchor,.ths-xp-col{scroll-margin-top:90px}
.ths-xp-page .ths-xp-section-title{margin:0 !important;padding:0 !important;font-size:clamp(28px,3.4vw,40px) !important;line-height:1.05 !important;font-weight:900 !important;font-style:italic;text-transform:uppercase;color:#fff !important;text-align:center}
.ths-xp-dock{display:none}

@media (max-width: 900px){
  .ths-xp-choose{grid-template-columns:minmax(0,1fr);gap:12px;margin-top:-4px}
  .ths-xp-pick{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"ico title btn" "ico line btn" "ico more btn";align-items:center;column-gap:14px;row-gap:2px;padding:14px 16px}
  .ths-xp-pick-ico{grid-area:ico;width:32px;height:32px}
  .ths-xp-page .ths-xp-pick-title{grid-area:title;margin:0 !important;font-size:19px !important}
  .ths-xp-page .ths-xp-pick-line{grid-area:line;margin:0 !important;font-size:13px !important}
  .ths-xp-pick .ths-xp-btn{grid-area:btn;align-self:center;margin:0;min-height:44px;padding:0 16px;font-size:12px !important}
  .ths-xp-page .ths-xp-pick-more{grid-area:more;justify-self:start;padding:2px 0;font-size:11px !important}
}
@media (max-width: 640px){
  .ths-xp-jump{display:none !important}
  .ths-xp-page{padding-bottom:calc(92px + env(safe-area-inset-bottom, 0px))}
  .ths-xp-dock{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:6px;position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom, 0px));z-index:9990;padding:6px;border:1px solid var(--xp-line-2);border-radius:16px;background:rgba(12,16,23,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 10px 30px rgba(0,0,0,.5);transition:transform .2s ease,opacity .2s ease}
  .ths-xp-page .ths-xp-dock a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:52px;border-radius:11px;color:var(--xp-text) !important;font-size:11px !important;font-weight:800;letter-spacing:.06em;text-transform:uppercase;text-decoration:none !important}
  .ths-xp-page .ths-xp-dock a:first-child{background:var(--xp-ice);color:#07121a !important}
  .ths-xp-dock svg{color:inherit}
  .ths-xp-dock.is-hidden{transform:translateY(130%);opacity:0;pointer-events:none}
}
@media (prefers-reduced-motion: reduce){
  .ths-xp-dock{transition:none}
}
@media (max-width: 640px){
  .ths-xp-page .ths-xp-headline{font-size:30px !important;line-height:1.02 !important}
  .ths-xp-page .ths-xp-intro{font-size:14px !important}
  .ths-xp-hero{gap:12px}
  /* Each tile is one tap target: the button's hit area covers the tile. */
  .ths-xp-pick{position:relative;grid-template-areas:"ico title btn" "ico line btn";padding:14px 14px 14px 16px;column-gap:12px}
  .ths-xp-pick-ico{width:28px;height:28px}
  .ths-xp-page .ths-xp-pick-title{font-size:17px !important}
  .ths-xp-page .ths-xp-pick-line{font-size:12.5px !important;line-height:1.35 !important}
  .ths-xp-page .ths-xp-pick-more{display:none}
  .ths-xp-pick .ths-xp-btn{position:static;min-height:40px;padding:0 12px;font-size:11px !important;letter-spacing:.06em;white-space:nowrap}
  .ths-xp-pick .ths-xp-btn::after{content:"";position:absolute;inset:0;border-radius:16px}
  /* A filter makes the button the containing block for ::after, which would
     shrink the tap area back to the button the moment it is hovered/tapped. */
  .ths-xp-page .ths-xp-pick .ths-xp-btn,.ths-xp-page .ths-xp-pick .ths-xp-btn:hover{filter:none;transform:none}
  .ths-xp-page .ths-xp-pick:active{background:linear-gradient(180deg,#161d27,#0c1017)}
}

.ths-xp-nw{white-space:nowrap}

/* =====================================================================
   1.0.25.0: tabs + one-screen booking boxes on [ths_experiences_page]
   ===================================================================== */
.ths-xp-page{gap:28px}
.ths-xp-hero{gap:10px}
.ths-xp-page .ths-xp-headline{font-size:clamp(30px,5vw,60px) !important}
.ths-xp-sr{position:absolute !important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.ths-xp-tabs{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:6px;padding:6px;border:1px solid var(--xp-line-2);border-radius:16px;background:#0c1017;max-width:760px;width:100%;margin:0 auto}
.ths-xp-page .ths-xp-tab{appearance:none;-webkit-appearance:none;border:0;margin:0;min-height:52px;padding:0 10px;border-radius:11px;background:transparent;color:var(--xp-muted) !important;font-family:inherit !important;font-size:14px !important;font-weight:800 !important;letter-spacing:.06em;text-transform:uppercase;line-height:1.15;cursor:pointer;transition:background .15s ease,color .15s ease}
.ths-xp-page .ths-xp-tab:hover{color:var(--xp-text) !important;background:var(--xp-raised)}
.ths-xp-page .ths-xp-tab[aria-selected="true"]{background:var(--xp-ice);color:#07121a !important}
.ths-xp-page .ths-xp-tab:focus-visible{outline:3px solid #fff;outline-offset:2px}
.ths-xp-panel[hidden]{display:none !important}
.ths-xp-panel{display:flex;flex-direction:column;gap:28px}

/* Mini golf tab: facts left, booking box right. */
.ths-xp-golf{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:28px;align-items:start}
.ths-xp-golf-info,.ths-xp-private{display:flex;flex-direction:column;gap:18px;border:1px solid var(--xp-line-2);border-radius:18px;padding:28px;background:linear-gradient(180deg,var(--xp-panel),var(--xp-ink))}
.ths-xp-private{max-width:760px;width:100%;margin:0 auto}
.ths-xp-golf-photo{display:block;width:calc(100% + 56px);margin:-28px -28px 0 !important;height:220px;object-fit:cover;border-radius:18px 18px 0 0;border:0 !important}
.ths-xp-page .ths-xp-col-title{margin:0 !important}
.ths-xp-page .ths-xp-facts{margin:0 !important;padding:0 !important;list-style:none !important;display:flex;flex-direction:column;gap:10px}
.ths-xp-page .ths-xp-facts li{margin:0 !important;padding:0 0 0 22px !important;position:relative;font-size:15px !important;font-weight:700;line-height:1.4 !important;color:var(--xp-muted) !important;list-style:none !important}
.ths-xp-page .ths-xp-facts li::before{content:"";position:absolute;left:4px;top:.55em;width:8px;height:8px;border-radius:50%;background:var(--xp-ice-soft)}
.ths-xp-private-actions{display:flex;flex-wrap:wrap;gap:12px}

/* The booking box. */
.ths-xp-bookbox{--xp-accent:var(--xp-ice);display:flex;flex-direction:column;gap:20px;border:2px solid var(--xp-accent);border-radius:18px;padding:26px 28px 24px;background:linear-gradient(180deg,#121923,#0b0f15);box-shadow:0 0 30px color-mix(in srgb,var(--xp-accent) 22%,transparent);scroll-margin-top:90px}
.ths-xp-bookbox[hidden]{display:none !important}
.ths-xp-bookbox .ths-exp-hp{position:absolute !important;left:-9999px !important;width:1px;height:1px;overflow:hidden}
.ths-xp-bookbox-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.ths-xp-page .ths-xp-bookbox-title{margin:0 !important;padding:0 !important;font-size:22px !important;line-height:1.2 !important;font-weight:900 !important;font-style:italic;text-transform:uppercase;color:#fff !important}
.ths-xp-page .ths-xp-close{appearance:none;border:1px solid var(--xp-line-2);background:var(--xp-raised);color:var(--xp-text) !important;width:44px;height:44px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
.ths-xp-page .ths-xp-fs{margin:0 !important;padding:0 !important;border:0 !important;min-width:0;display:flex;flex-direction:column;gap:12px}
.ths-xp-page .ths-xp-fs legend{margin:0 0 10px !important;padding:0 !important;font-family:var(--xp-mono) !important;font-size:12px !important;letter-spacing:.18em;text-transform:uppercase;color:var(--xp-ice-soft) !important;float:left;width:100%}
.ths-xp-fs legend + *{clear:both}

.ths-xp-counts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.ths-xp-counts.is-single{grid-template-columns:minmax(0,1fr)}
.ths-xp-count{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--xp-line-2);border-radius:14px;padding:12px 12px 12px 16px;background:#0c1017}
.ths-xp-page .ths-xp-count label{display:flex;flex-direction:column;gap:2px;margin:0 !important;color:var(--xp-text) !important}
.ths-xp-page .ths-xp-count label strong{font-size:16px !important;font-weight:800;color:#fff !important}
.ths-xp-page .ths-xp-count label span{font-size:12.5px !important;font-weight:700;color:var(--xp-muted) !important}
.ths-xp-stepper{display:flex;align-items:center;gap:6px}
.ths-xp-page .ths-xp-stepper button{appearance:none;width:44px;height:44px;border-radius:12px;border:1px solid var(--xp-line-2);background:var(--xp-raised);color:#fff !important;font-size:22px !important;font-weight:700;line-height:1;cursor:pointer;padding:0}
.ths-xp-page .ths-xp-stepper button:hover{border-color:var(--xp-ice-soft)}
.ths-xp-page .ths-xp-stepper input{width:48px !important;height:44px;margin:0 !important;padding:0 !important;text-align:center;border:0 !important;background:transparent !important;color:#fff !important;font-family:inherit !important;font-size:22px !important;font-weight:900 !important;-moz-appearance:textfield;box-shadow:none !important}
.ths-xp-stepper input::-webkit-outer-spin-button,.ths-xp-stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}

.ths-xp-page .ths-xp-date-row input,.ths-xp-page .ths-xp-field input{width:100% !important;min-height:48px;margin:0 !important;padding:10px 14px !important;border:1px solid var(--xp-line-2) !important;border-radius:12px !important;background:#0c1017 !important;color:var(--xp-text) !important;font-family:inherit !important;font-size:16px !important;font-weight:700 !important;box-shadow:none !important;color-scheme:dark}
.ths-xp-page .ths-xp-date-row input:focus,.ths-xp-page .ths-xp-field input:focus{outline:2px solid var(--xp-ice-soft);outline-offset:1px;border-color:transparent !important}
.ths-xp-date-row{max-width:260px}
.ths-xp-times{min-height:48px}
.ths-xp-time-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px;max-height:236px;overflow-y:auto;padding:2px 4px 2px 0;overscroll-behavior:contain}
/* 1.0.29.1: Morning / Afternoon / Evening. Each part shows every time in
   full (no scrolling box), four or more to a row. */
.ths-xp-time-grid.is-grouped{max-height:none;overflow:visible;grid-template-columns:repeat(auto-fill,minmax(72px,1fr))}
.ths-xp-time-grid[hidden]{display:none !important}
.ths-xp-dayparts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 12px}
.ths-xp-page .ths-xp-daypart{appearance:none;display:flex;flex-direction:column;align-items:center;gap:2px;min-height:52px;padding:8px 6px;border-radius:12px;border:1px solid var(--xp-line-2);background:transparent;color:var(--xp-text) !important;font-family:inherit !important;cursor:pointer}
.ths-xp-page .ths-xp-daypart{min-width:0}
.ths-xp-page .ths-xp-daypart strong{max-width:100%;font-size:14px !important;font-weight:900;letter-spacing:.04em;text-transform:uppercase;color:inherit !important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ths-xp-page .ths-xp-daypart span{font-family:var(--xp-mono) !important;font-size:11px !important;color:var(--xp-muted) !important}
.ths-xp-page .ths-xp-daypart:hover{border-color:var(--xp-ice-soft)}
.ths-xp-page .ths-xp-daypart[aria-selected="true"]{border-color:var(--xp-accent);background:rgba(79,195,255,.12);box-shadow:inset 0 -3px 0 var(--xp-accent)}
.ths-xp-page .ths-xp-daypart[aria-selected="true"] span{color:var(--xp-text) !important}
.ths-xp-page .ths-xp-time{appearance:none;min-height:44px;padding:0 6px;border-radius:10px;border:1px solid var(--xp-line-2);background:#0c1017;color:var(--xp-text) !important;font-family:inherit !important;font-size:14px !important;font-weight:800 !important;cursor:pointer}
.ths-xp-page .ths-xp-time:hover{border-color:var(--xp-ice-soft)}
.ths-xp-page .ths-xp-time[aria-pressed="true"]{background:var(--xp-accent);border-color:var(--xp-accent);color:#07121a !important}
.ths-xp-page .ths-xp-times-note{margin:0 !important;padding:12px 0 4px !important;font-size:15px !important;font-weight:700;color:var(--xp-muted) !important}
.ths-xp-page .ths-xp-link{appearance:none;border:0;background:none;padding:6px 0;color:var(--xp-ice-soft) !important;font-family:inherit !important;font-size:14px !important;font-weight:800;text-decoration:underline;cursor:pointer}

.ths-xp-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.ths-xp-page .ths-xp-field{display:flex;flex-direction:column;gap:6px;margin:0 !important}
.ths-xp-page .ths-xp-field span{font-size:13px !important;font-weight:800;letter-spacing:.04em;color:var(--xp-muted) !important}

.ths-xp-page .ths-xp-terms{display:flex;align-items:flex-start;gap:10px;margin:0 !important;font-size:14px !important;font-weight:700;line-height:1.45 !important;color:var(--xp-muted) !important;cursor:pointer}
.ths-xp-terms input{width:22px;height:22px;margin:0;flex:0 0 22px;accent-color:var(--xp-ice)}
.ths-xp-submit-row{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid var(--xp-line);padding-top:18px}
.ths-xp-total{display:flex;flex-direction:column}
.ths-xp-total span{font-family:var(--xp-mono) !important;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--xp-muted) !important}
.ths-xp-total strong{font-size:32px;line-height:1.1;font-weight:900;color:#fff !important}
.ths-xp-page .ths-xp-checkout{min-height:56px;padding:0 26px;--xp-accent:var(--xp-ice)}
.ths-xp-page .ths-xp-btn[disabled]{opacity:.45;cursor:not-allowed;filter:none}
.ths-xp-page .ths-xp-missing{margin:-6px 0 0 !important;padding:0 !important;min-height:1.2em;font-size:13px !important;font-weight:700;color:var(--xp-muted) !important;text-align:right}

/* Parties tab: the chosen card, and its box. */
.ths-xp-page .ths-xp-tier-foot button.ths-xp-btn{cursor:pointer}
.ths-xp-tier.is-chosen{box-shadow:0 0 0 3px var(--xp-accent),0 0 44px color-mix(in srgb,var(--xp-accent) 55%,transparent)}
.ths-xp-bookbox.is-party .ths-xp-checkout{--xp-accent:var(--xp-ice)}

@media (max-width: 900px){
  .ths-xp-golf{grid-template-columns:minmax(0,1fr)}
}
@media (max-width: 980px){
  .ths-xp-tiers .ths-xp-bookbox{margin-top:-8px}
}
@media (max-width: 640px){
  .ths-xp-page{gap:20px;padding-bottom:44px}
  .ths-xp-page .ths-xp-intro{display:none}
  .ths-xp-page .ths-xp-tab{min-height:48px;font-size:12px !important;letter-spacing:.03em;padding:0 4px}
  .ths-xp-golf-info,.ths-xp-private{padding:20px}
  .ths-xp-golf-photo{width:calc(100% + 40px);margin:-20px -20px 0 !important;height:180px}
  .ths-xp-bookbox{padding:18px 16px 18px;gap:18px}
  .ths-xp-counts,.ths-xp-fields{grid-template-columns:minmax(0,1fr)}
  .ths-xp-date-row{max-width:none}
  .ths-xp-time-grid{grid-template-columns:repeat(3,minmax(0,1fr));max-height:200px}
  .ths-xp-time-grid.is-grouped{grid-template-columns:repeat(4,minmax(0,1fr));max-height:none}
  .ths-xp-dayparts{gap:4px}
  .ths-xp-page .ths-xp-daypart{padding:8px 0}
  .ths-xp-page .ths-xp-daypart strong{font-size:13px !important;letter-spacing:0;text-transform:none}
  .ths-xp-page .ths-xp-time{white-space:nowrap;font-size:14px !important}
  .ths-xp-submit-row{flex-direction:column;align-items:stretch}
  .ths-xp-total{flex-direction:row;align-items:baseline;justify-content:space-between}
  .ths-xp-page .ths-xp-checkout{width:100%}
  .ths-xp-page .ths-xp-missing{text-align:center}
}
@media (max-width:374px){.ths-xp-page .ths-xp-daypart strong{font-size:12px !important}}
@media (max-width: 900px){
  .ths-xp-golf .ths-xp-bookbox{order:-1}
}

/* 1.0.27.3: "+ GST" beside the checkout total */
.ths-xp-page .ths-xp-tax{font-style:normal;font-size:11px;font-weight:800;letter-spacing:.08em;color:var(--xp-muted) !important;margin-left:4px}
