@font-face { font-family: 'Toprijles Montserrat'; font-style: normal; font-weight: 400; font-display: swap; src: url('fonts/montserrat-400.ttf') format('truetype'); }
@font-face { font-family: 'Toprijles Montserrat'; font-style: normal; font-weight: 500; font-display: swap; src: url('fonts/montserrat-500.ttf') format('truetype'); }
@font-face { font-family: 'Toprijles Montserrat'; font-style: normal; font-weight: 600; font-display: swap; src: url('fonts/montserrat-600.ttf') format('truetype'); }
@font-face { font-family: 'Toprijles Montserrat'; font-style: normal; font-weight: 700; font-display: swap; src: url('fonts/montserrat-700.ttf') format('truetype'); }
@font-face { font-family: 'Toprijles Montserrat'; font-style: normal; font-weight: 800; font-display: swap; src: url('fonts/montserrat-800.ttf') format('truetype'); }

.tr-booking-root,
.tr-booking-root *,
.tr-booking-status,
.tr-booking-status * {
  box-sizing: border-box;
}

.tr-booking-root {
  --trb-blue: #0072db;
  --trb-blue-hover: #005eb8;
  --trb-yellow: #ffe500;
  --trb-yellow-hover: #f2d900;
  --trb-dark: #102b46;
  --trb-body: #526273;
  --trb-line: rgba(0, 114, 219, 0.14);
  --trb-soft: #f3f8fd;
  --trb-white: #ffffff;
  width: 100%;
  color: var(--trb-dark);
  background: transparent;
  font-family: Inter, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
}

.tr-booking {
  width: 100%;
  margin: 0;
  padding: 0;
  display: block;
}

.tr-booking__panel {
  min-width: 0;
  padding: 40px 42px 32px;
  border: 1px solid var(--trb-line);
  border-radius: 28px;
  background: var(--trb-white);
}

.trb-progress {
  position: relative;
  margin: 0 0 42px;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  list-style: none;
}

.trb-progress::before {
  content: "";
  position: absolute;
  top: 17px;
  right: 12%;
  left: 12%;
  height: 1px;
  background: var(--trb-line);
}

.trb-progress li {
  position: relative;
  z-index: 1;
  display: grid;
  justify-items: center;
  gap: 8px;
  color: #94a3b8;
  font-size: 11px;
  font-weight: 700;
  text-align: center;
}

.trb-progress__number {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border: 1px solid var(--trb-line);
  border-radius: 50%;
  color: #64748b;
  background: var(--trb-white);
  font-size: 13px;
}

.trb-progress li.is-active,
.trb-progress li.is-done {
  color: var(--trb-dark);
}

.trb-progress li.is-active .trb-progress__number {
  border-color: var(--trb-blue);
  color: #ffffff;
  background: var(--trb-blue);
}

.trb-progress li.is-done .trb-progress__number {
  border-color: rgba(0, 114, 219, 0.22);
  color: var(--trb-blue);
  background: rgba(0, 114, 219, 0.08);
}

.trb-step__heading {
  margin-bottom: 30px;
}

.trb-step__count {
  display: block;
  margin-bottom: 8px;
  color: var(--trb-blue);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.trb-step__heading h3 {
  margin: 0;
  color: var(--trb-dark);
  font-family: Montserrat, Inter, Arial, sans-serif;
  font-size: 30px;
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.2;
}

.trb-step__heading p {
  max-width: 620px;
  margin: 10px 0 0;
  color: var(--trb-body);
  font-size: 15px;
  line-height: 1.65;
}

.trb-fields {
  display: grid;
  gap: 18px;
}

.trb-fields--two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.trb-field {
  display: grid;
  gap: 8px;
}

.trb-field > span,
.trb-choice-group legend,
.trb-calendar__label {
  color: var(--trb-dark);
  font-size: 13px;
  font-weight: 750;
}

.trb-field input {
  width: 100%;
  min-height: 52px;
  padding: 0 15px;
  border: 1px solid var(--trb-line);
  border-radius: 12px;
  outline: none;
  color: var(--trb-dark);
  background: var(--trb-white);
  font: 500 16px/1.3 Inter, Arial, sans-serif;
  transition: border-color 160ms ease, box-shadow 160ms ease;
}

.trb-field input::placeholder {
  color: #94a3b8;
}

.trb-field input:focus {
  border-color: var(--trb-blue);
  box-shadow: 0 0 0 4px rgba(0, 114, 219, 0.1);
}

.trb-choice-group {
  margin: 28px 0 0;
  padding: 0;
  border: 0;
}

.trb-choice-group legend {
  margin-bottom: 10px;
}

.trb-choice-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.trb-choice {
  position: relative;
  min-height: 92px;
  padding: 16px;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) 24px;
  gap: 12px;
  align-items: center;
  border: 1px solid var(--trb-line);
  border-radius: 16px;
  color: var(--trb-dark);
  background: var(--trb-white);
  cursor: pointer;
  text-align: left;
  transition: border-color 160ms ease, background 160ms ease;
}

/* Keep form controls inside the Toprijles system when a theme applies
   global button styles. */
.tr-booking-root button.trb-choice {
  border: 1px solid var(--trb-line) !important;
  color: var(--trb-dark) !important;
  background: var(--trb-white) !important;
  box-shadow: none !important;
}

.tr-booking-root button.trb-choice:hover {
  border-color: rgba(0, 114, 219, 0.36) !important;
}

.tr-booking-root button.trb-choice.is-selected {
  border-color: var(--trb-blue) !important;
  background: var(--trb-white) !important;
  box-shadow: 0 0 0 3px rgba(0, 114, 219, 0.08) !important;
}

.trb-choice__icon {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  color: var(--trb-blue);
  background: rgba(0, 114, 219, 0.08);
  font-size: 16px;
  font-weight: 800;
}

.trb-choice strong,
.trb-choice small {
  display: block;
}

.trb-choice strong {
  font-family: Montserrat, Inter, Arial, sans-serif;
  font-size: 15px;
  font-weight: 700;
}

.trb-choice small {
  margin-top: 4px;
  color: var(--trb-body);
  font-size: 12px;
  line-height: 1.4;
}

.trb-choice__check {
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  border: 1px solid var(--trb-line);
  border-radius: 50%;
  color: transparent;
  font-size: 12px;
  font-weight: 800;
}

.trb-choice.is-selected .trb-choice__check {
  border-color: var(--trb-blue);
  color: #ffffff;
  background: var(--trb-blue);
}

.trb-location-note {
  margin-top: 18px;
  padding: 16px 18px;
  display: flex;
  align-items: center;
  gap: 12px;
  border-radius: 14px;
  color: var(--trb-dark);
  background: rgba(0, 114, 219, 0.07);
}

.trb-location-note > span {
  width: 34px;
  height: 34px;
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 50%;
  color: var(--trb-white);
  background: var(--trb-blue);
  font-size: 18px;
  font-weight: 800;
}

.trb-location-note strong,
.trb-location-note small {
  display: block;
}

.trb-location-note strong {
  font-size: 13px;
  font-weight: 800;
}

.trb-location-note small {
  margin-top: 3px;
  color: var(--trb-body);
  font-size: 12px;
  line-height: 1.4;
}

.trb-calendar + .trb-calendar {
  margin-top: 28px;
}

.trb-calendar__label {
  display: block;
  margin-bottom: 10px;
}

.trb-date-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.trb-date,
.trb-time {
  min-height: 50px;
  padding: 10px 12px;
  border: 1px solid var(--trb-line);
  border-radius: 12px;
  color: var(--trb-dark);
  background: var(--trb-white);
  cursor: pointer;
  font: 700 14px/1.3 Inter, Arial, sans-serif;
  transition: border-color 160ms ease, color 160ms ease, background 160ms ease;
}

.tr-booking-root button.trb-date,
.tr-booking-root button.trb-time {
  border: 1px solid var(--trb-line) !important;
  color: var(--trb-dark) !important;
  background: var(--trb-white) !important;
  box-shadow: none !important;
}

.tr-booking-root button.trb-date:hover,
.tr-booking-root button.trb-time:hover {
  border-color: rgba(0, 114, 219, 0.36) !important;
}

.tr-booking-root button.trb-date.is-selected,
.tr-booking-root button.trb-time.is-selected {
  border-color: var(--trb-blue) !important;
  color: #ffffff !important;
  background: var(--trb-blue) !important;
}

.trb-date span {
  display: block;
  text-transform: capitalize;
}

.trb-time-grid {
  min-height: 50px;
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
  align-items: center;
}

.trb-empty,
.trb-loading {
  grid-column: 1 / -1;
  margin: 0;
  padding: 14px 0;
  color: var(--trb-body);
  font-size: 14px;
}

.trb-loading {
  display: flex;
  align-items: center;
  gap: 9px;
}

.trb-loading span,
.trb-button__spinner,
.tr-booking-status__spinner {
  width: 16px;
  height: 16px;
  display: inline-block;
  border: 2px solid rgba(0, 114, 219, 0.18);
  border-top-color: var(--trb-blue);
  border-radius: 50%;
  animation: trb-spin 700ms linear infinite;
}

.trb-consent {
  margin-top: 22px;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  color: var(--trb-body);
  cursor: pointer;
  font-size: 13px;
  line-height: 1.55;
}

.trb-consent input {
  width: 17px;
  height: 17px;
  margin: 1px 0 0;
  accent-color: var(--trb-blue);
}

.trb-honeypot {
  position: absolute !important;
  left: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

.trb-summary {
  border-top: 1px solid var(--trb-line);
}

.trb-summary__row {
  padding: 14px 0;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  border-bottom: 1px solid var(--trb-line);
}

.trb-summary__row span {
  color: var(--trb-body);
  font-size: 14px;
}

.trb-summary__row strong {
  color: var(--trb-dark);
  font-size: 14px;
  font-weight: 750;
  text-align: right;
}

.trb-payment {
  margin-top: 22px;
  padding: 17px 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border-radius: 16px;
  background: var(--trb-white);
}

.trb-payment span,
.trb-payment small {
  display: block;
}

.trb-payment span {
  color: var(--trb-dark);
  font-size: 14px;
  font-weight: 750;
}

.trb-payment small {
  margin-top: 4px;
  color: var(--trb-body);
  font-size: 12px;
}

.trb-secure img {
  width: 82px;
  height: auto;
  display: inline-block;
  flex: 0 0 auto;
  border-radius: 3px;
}

.trb-secure__detail {
  display: inline;
}

.trb-payment > strong {
  color: var(--trb-blue);
  font-family: Montserrat, Inter, Arial, sans-serif;
  font-size: 24px;
  font-weight: 750;
}

.trb-refund {
  margin: 14px 0 0;
  padding-left: 26px;
  position: relative;
  color: var(--trb-body);
  font-size: 13px;
  line-height: 1.55;
}

.trb-refund span {
  position: absolute;
  top: 1px;
  left: 0;
  width: 18px;
  height: 18px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: var(--trb-blue);
  background: rgba(0, 114, 219, 0.08);
  font-size: 10px;
  font-weight: 800;
}

.trb-alert {
  margin: 0 0 22px;
  padding: 12px 14px;
  border-left: 3px solid #e11d48;
  color: #9f1239;
  background: #fff1f2;
  font-size: 14px;
  line-height: 1.5;
}

.trb-controls {
  margin-top: 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.trb-button {
  min-height: 54px;
  padding: 14px 26px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  border: 0;
  border-radius: 999px;
  cursor: pointer;
  font: 750 15px/1.35 Inter, Arial, sans-serif;
  text-decoration: none;
  transition: background 160ms ease, color 160ms ease, border-color 160ms ease;
}

.trb-button:disabled {
  cursor: wait;
  opacity: 0.72;
}

.trb-button--next {
  color: var(--trb-dark);
  background: var(--trb-yellow);
}

.trb-button--next:hover {
  background: var(--trb-yellow-hover);
}

.trb-button--back {
  border: 1px solid var(--trb-line);
  color: var(--trb-dark);
  background: var(--trb-white);
}

.trb-button--back:hover {
  border-color: rgba(0, 114, 219, 0.24);
  background: var(--trb-white);
}

.tr-booking-root button.trb-button--next,
.tr-booking-status a.trb-button--next {
  border: 0 !important;
  color: var(--trb-dark) !important;
  background: var(--trb-yellow) !important;
  box-shadow: none !important;
}

.tr-booking-root button.trb-button--next:hover,
.tr-booking-status a.trb-button--next:hover {
  color: var(--trb-dark) !important;
  background: var(--trb-yellow-hover) !important;
}

.tr-booking-root button.trb-button--back {
  border: 1px solid var(--trb-line) !important;
  color: #102b46 !important;
  background: #ffffff !important;
  box-shadow: none !important;
}

.tr-booking-root button.trb-button--back:hover {
  border-color: rgba(0, 114, 219, 0.24) !important;
  color: #102b46 !important;
  background: #ffffff !important;
}

.tr-booking-root button:focus-visible,
.tr-booking-root input:focus-visible,
.tr-booking-status a:focus-visible {
  outline: 3px solid var(--trb-blue);
  outline-offset: 3px;
}

.trb-button__spinner {
  border-color: rgba(16, 43, 70, 0.2);
  border-top-color: var(--trb-dark);
}

.trb-secure {
  margin: 18px 0 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 5px;
  color: #64748b;
  font-size: 11px;
  line-height: 1.5;
  text-align: right;
}

.trb-secure > span[aria-hidden="true"] {
  color: var(--trb-blue);
  font-weight: 800;
}

.trb-secure__detail {
  color: #64748b;
  font-weight: 400;
}

.tr-booking-status {
  --trb-blue: #0072db;
  --trb-blue-hover: #005eb8;
  --trb-yellow: #ffe500;
  --trb-yellow-hover: #f2d900;
  --trb-dark: #102b46;
  --trb-body: #526273;
  --trb-line: rgba(0, 114, 219, 0.14);
  --trb-soft: #f3f8fd;
  --trb-white: #ffffff;
  width: min(680px, calc(100% - 32px));
  margin: 80px auto;
  padding: 56px 36px;
  border: 0;
  border-radius: 24px;
  color: var(--trb-dark, #102b46);
  background: var(--trb-soft);
  font-family: Inter, Arial, sans-serif;
  text-align: center;
}

.tr-booking-status__spinner {
  width: 30px;
  height: 30px;
  margin-bottom: 18px;
}

.tr-booking-status__icon {
  width: 58px;
  height: 58px;
  margin: 0 auto 20px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #0072db;
  background: rgba(0, 114, 219, 0.08);
  font-size: 26px;
  font-weight: 800;
}

.tr-booking-status.is-failed .tr-booking-status__icon {
  color: #be123c;
  background: #fff1f2;
}

.tr-booking-status h1 {
  margin: 0;
  font-family: Montserrat, Inter, Arial, sans-serif;
  font-weight: 800;
  font-size: 34px;
  line-height: 1.2;
}

.tr-booking-status p {
  margin: 16px auto 26px;
  color: var(--trb-body);
  font-size: 16px;
  line-height: 1.65;
}

@keyframes trb-spin {
  to {
    transform: rotate(360deg);
  }
}

@media (max-width: 767px) {
  .tr-booking__panel {
    padding: 26px 18px 22px;
    border-radius: 20px;
  }

  .trb-progress {
    margin-bottom: 32px;
  }

  .trb-progress__label {
    display: none;
  }

  .trb-step__heading {
    margin-bottom: 24px;
  }

  .trb-step__heading h3 {
    font-size: 25px;
  }

  .trb-fields--two,
  .trb-choice-grid {
    grid-template-columns: 1fr;
  }

  .trb-choice {
    min-height: 82px;
  }

  .trb-date-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .trb-time-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .trb-summary__row {
    gap: 14px;
  }

  .trb-controls {
    align-items: stretch;
  }

  .trb-controls .trb-button {
    flex: 1;
    padding-inline: 14px;
  }

  .trb-secure {
    justify-content: center;
    text-align: center;
  }

  .tr-booking-status {
    margin: 40px auto;
    padding: 42px 22px;
  }

  .tr-booking-status h1 {
    font-size: 28px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .trb-choice,
  .trb-date,
  .trb-time,
  .trb-button {
    transition: none;
  }
}

/* Toprijles 0.2.2: quiet surfaces, blue selections and yellow actions. */
.tr-booking-root { color-scheme: light; }
.tr-booking-root button { text-transform: none; letter-spacing: normal; }
.trb-step__heading h3 { color: var(--trb-dark); }
.trb-progress__number { width: 38px; height: 38px; }
.trb-progress::before { top: 19px; }
.trb-progress li { color: var(--trb-body); }
.trb-progress li.is-active .trb-progress__number {
  box-shadow: 0 0 0 5px rgba(0, 114, 219, 0.08);
}
.tr-booking-root button.trb-choice.is-selected {
  background: var(--trb-soft) !important;
}
.trb-payment { background: var(--trb-soft); }
.trb-field input::placeholder { color: #6b7b8c; }
.trb-summary__row strong { min-width: 0; overflow-wrap: anywhere; }
.trb-controls > .trb-button--next { min-width: 160px; }
.trb-button { text-align: center; white-space: normal; }
@media (max-width: 767px) {
  .trb-controls { flex-wrap: wrap; gap: 10px; }
  .trb-controls > span:empty { display: none; }
  .trb-controls > .trb-button--back { flex: 0 0 auto; }
  .trb-controls > .trb-button--next { flex: 1 1 180px; min-width: 0; }
  .trb-payment { gap: 12px; padding: 16px; }
}

/* Component styles protected against theme resets; white card 0.2.6. */
.tr-booking-root,
.tr-booking-status {
  --trb-dark: #01143c;
  --trb-body: #526273;
  --trb-line: #d6e3f0;
  --trb-soft: #f2f7fd;
  color: #01143c;
}
.tr-booking-root,
.tr-booking-root *,
.tr-booking-status,
.tr-booking-status * {
  font-family: 'Toprijles Montserrat', Montserrat, Arial, sans-serif !important;
}
.tr-booking-root .tr-booking__panel,
.tr-booking-status {
  background: #ffffff;
  border: 0;
  border-radius: 28px;
}
.tr-booking-root .trb-step__heading h3,
.tr-booking-root .trb-step__heading p,
.tr-booking-root .trb-step__count,
.tr-booking-root .trb-field > span,
.tr-booking-root .trb-choice-group legend,
.tr-booking-root .trb-calendar__label,
.tr-booking-root .trb-location-note strong,
.tr-booking-root .trb-location-note small,
.tr-booking-root .trb-summary__row span,
.tr-booking-root .trb-summary__row strong,
.tr-booking-root .trb-payment span,
.tr-booking-root .trb-payment small,
.tr-booking-root .trb-payment > strong,
.tr-booking-root .trb-progress li,
.tr-booking-root .trb-secure,
.tr-booking-root .trb-secure > span,
.tr-booking-status h1,
.tr-booking-status p { color: #01143c; }
.tr-booking-root .trb-progress__number {
  color: #526273; background: #ffffff; border-color: #d6e3f0;
}
.tr-booking-root .trb-progress li.is-active .trb-progress__number,
.tr-booking-root .trb-progress li.is-done .trb-progress__number {
  color: #ffffff; background: #0072db; border-color: #0072db;
  box-shadow: 0 0 0 5px rgba(0,114,219,.10);
}
.tr-booking-root button.trb-choice {
  display: grid !important;
  grid-template-columns: 42px minmax(0,1fr) 22px;
  gap: 12px; align-items: center;
  padding: 16px !important; border-radius: 18px !important;
  text-align: left !important;
  color: #01143c !important;
  background: #f2f7fd !important;
  line-height: 1.4 !important;
}
.tr-booking-root button.trb-choice strong,
.tr-booking-root button.trb-choice small { color: inherit; }
.tr-booking-root button.trb-choice:not(:disabled):hover,
.tr-booking-root button.trb-choice.is-selected {
  color: #01143c !important;
  border-color: #0072db !important;
  background: #e6f2ff !important;
  box-shadow: 0 0 0 2px rgba(0,114,219,.10) !important;
}
.tr-booking-root button.trb-choice:disabled {
  cursor: not-allowed !important;
  opacity: 1 !important;
  color: #64748b !important;
  border-color: #e0e5eb !important;
  background: #f1f3f5 !important;
  box-shadow: none !important;
}
.tr-booking-root .trb-choice__icon,
.tr-booking-root .trb-location-note > span,
.tr-booking-root .trb-refund span {
  color: #0072db; background: #e3effc;
}
.tr-booking-root .trb-choice.is-selected .trb-choice__check {
  background: #0072db; color: #ffffff; border-color: #0072db;
}
.tr-booking-root .trb-choice.is-unavailable .trb-choice__check { visibility: hidden; }
.tr-booking-root .trb-field input {
  color: #01143c !important; background: #f2f7fd !important;
  border: 1px solid #d6e3f0 !important; border-radius: 12px !important;
  font-size: 16px !important;
}
.tr-booking-root button.trb-date,
.tr-booking-root button.trb-time {
  border-radius: 12px !important;
  color: #01143c !important; background: #f2f7fd !important;
}
.tr-booking-root button.trb-date:hover,
.tr-booking-root button.trb-time:hover { border-color: #0072db !important; }
.tr-booking-root button.trb-date.is-selected,
.tr-booking-root button.trb-time.is-selected {
  color: #ffffff !important; background: #0072db !important; border-color: #0072db !important;
}
.tr-booking-root button.trb-button,
.tr-booking-status a.trb-button {
  display: inline-flex !important; align-items: center; justify-content: center;
  border-radius: 999px !important;
  font-weight: 700 !important; font-size: 15px !important;
  line-height: 1.4 !important; padding: 16px 28px !important;
  text-transform: none !important; letter-spacing: 0 !important;
}
.tr-booking-root button.trb-button--next,
.tr-booking-status a.trb-button--next {
  color: #01143c !important; background: #ffe500 !important;
}
.tr-booking-root button.trb-button--next:hover,
.tr-booking-status a.trb-button--next:hover {
  color: #01143c !important; background: #f2d900 !important;
}
.tr-booking-root button.trb-button--back,
.tr-booking-root button.trb-button--back:hover {
  color: #01143c !important; background: transparent !important;
  border: 1px solid #d6e3f0 !important;
}
.tr-booking-root button:focus-visible,
.tr-booking-root input:focus-visible,
.tr-booking-status a:focus-visible { outline: 3px solid #0072db !important; outline-offset: 3px; }
.tr-booking-root .trb-consent input { accent-color: #01143c; }
.tr-booking-status .tr-booking-status__icon {
  color: #0072db; background: #e3effc;
}
@media (max-width: 767px) {
  .tr-booking-root .tr-booking__panel { border-radius: 24px; }
  .tr-booking-root button.trb-button { padding: 15px 20px !important; }
}

/* 0.2.4: allow choice labels to wrap even with theme nowrap styles. */
@media (min-width: 768px) {

.tr-booking-root button.trb-choice,
.tr-booking-root button.trb-choice > span,
.tr-booking-root button.trb-choice strong,
.tr-booking-root button.trb-choice small {
  white-space: normal !important;
  min-width: 0;
}
.tr-booking-root button.trb-choice > span:nth-child(2) {
  text-align: left !important;
  overflow-wrap: anywhere;
}
.tr-booking-root button.trb-choice strong,
.tr-booking-root button.trb-choice small {
  display: block !important;
  width: auto !important;
  line-height: 1.45 !important;
}

}

.tr-booking-root .trb-progress::before { left: 10%; right: 10%; }
.tr-booking-root .trb-progress__label { overflow-wrap: anywhere; }

/* The rounded panel owns its surface; no square white backing. */
.tr-booking-root,
.tr-booking-root .tr-booking { background: transparent !important; }
.tr-booking-root { border-radius: 28px; }
.elementor-widget-shortcode:has(.tr-booking-root),
.elementor-widget-shortcode:has(.tr-booking-root) > .elementor-widget-container {
  background: transparent !important;
}
.tr-booking-root .trb-step__count,
.tr-booking-root .trb-payment > strong { color: #0072db; }
.tr-booking-root .trb-step__heading p,
.tr-booking-root .trb-secure,
.tr-booking-root .trb-secure > span { color: #526273; }
.tr-booking-root .trb-field input:focus { border-color: #0072db !important; }
.tr-booking-root .trb-choice.is-unavailable .trb-choice__icon {
  color: #64748b; background: #e3e8ee;
}
.tr-booking-status.is-failed .tr-booking-status__icon {
  color: #be123c; background: #fff1f2;
}
@media (max-width: 767px) { .tr-booking-root { border-radius: 24px; } }

/* 0.2.7: enforce softly rounded outer card, including Elementor wrapper. */
.tr-booking-root,
.tr-booking-root .tr-booking,
.tr-booking-root .tr-booking__panel,
.tr-booking-status {
  border-radius: 20px !important;
}
.elementor-widget-shortcode:has(.tr-booking-root),
.elementor-widget-shortcode:has(.tr-booking-root) > .elementor-widget-container {
  border-radius: 20px !important;
  background: transparent !important;
}


/* Toprijles visual refresh 0.3.0 — styling only */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Outfit:wght@600&display=swap');

.tr-booking-root,
.tr-booking-status {
  --trb-blue: #2563EB;
  --trb-blue-hover: #1D4ED8;
  --trb-yellow: #2563EB;
  --trb-yellow-hover: #1D4ED8;
  --trb-dark: #333333;
  --trb-body: #333333;
  --trb-line: #BFDBFE;
  --trb-soft: #EFF6FF;
  --trb-white: #ffffff;
  color: #333333;
  font-family: Inter, Arial, sans-serif;
  font-size: 17px;
  font-weight: 400;
}

.tr-booking-root *,
.tr-booking-status * {
  font-family: Inter, Arial, sans-serif;
}

.tr-booking-root h1,
.tr-booking-root h2,
.tr-booking-root h3,
.tr-booking-root h4,
.tr-booking-status h1,
.tr-booking-status h2 {
  color: #333333;
  font-family: Outfit, Inter, Arial, sans-serif;
  font-size: 40px;
  font-weight: 600;
  line-height: 1.15;
}

.tr-booking-root p,
.tr-booking-status p,
.tr-booking-root label,
.tr-booking-root legend,
.tr-booking-root small {
  color: #333333;
  font-size: 17px;
  font-weight: 400;
}

.tr-booking__panel {
  background: #ffffff;
}

.trb-step__heading h3 {
  color: #333333;
  font-family: Outfit, Inter, Arial, sans-serif;
  font-size: 40px;
  font-weight: 600;
  letter-spacing: normal;
}

.trb-step__heading p {
  color: #333333;
  font-size: 17px;
  font-weight: 400;
}

.trb-step__count,
.trb-progress li.is-active,
.trb-progress li.is-done {
  color: #2563EB;
}

.trb-field > span,
.trb-choice-group legend,
.trb-calendar__label {
  color: #333333;
  font-size: 17px;
  font-weight: 400;
}

.trb-field input,
.trb-field select,
.trb-field textarea {
  color: #333333;
  background: #EFF6FF;
  border-color: #BFDBFE;
  font-family: Inter, Arial, sans-serif;
  font-size: 16px;
  font-weight: 400;
}

.trb-choice,
.trb-date,
.trb-time,
.trb-summary,
.trb-payment,
.trb-location-note,
.trb-calendar {
  background: #EFF6FF;
  border-color: #BFDBFE;
  color: #333333;
}

.tr-booking-root button.trb-choice {
  background: #EFF6FF !important;
  border-color: #BFDBFE !important;
  color: #333333 !important;
}

.trb-choice.is-selected,
.trb-date.is-selected,
.trb-time.is-selected,
.tr-booking-root button.trb-choice.is-selected {
  background: #DBEAFE !important;
  border-color: #2563EB !important;
  color: #333333 !important;
}

.trb-button,
.tr-booking-root button.trb-button--next,
.tr-booking-status a.trb-button--next {
  color: #ffffff !important;
  background: #2563EB !important;
  font-family: Inter, Arial, sans-serif;
  font-size: 16px;
  font-weight: 600;
}

.trb-button:hover,
.tr-booking-root button.trb-button--next:hover,
.tr-booking-status a.trb-button--next:hover {
  color: #ffffff !important;
  background: #1D4ED8 !important;
}

.trb-button--back,
.tr-booking-root button.trb-button--back {
  color: #2563EB !important;
  background: #EFF6FF !important;
  border: 1px solid #BFDBFE !important;
}

.trb-payment > strong {
  color: #2563EB;
  font-family: Inter, Arial, sans-serif;
}

.trb-progress__number {
  border-color: #BFDBFE;
}

.trb-progress li.is-active .trb-progress__number {
  color: #ffffff;
  background: #2563EB;
  border-color: #2563EB;
}

.trb-progress li.is-done .trb-progress__number {
  color: #2563EB;
  background: #DBEAFE;
  border-color: #BFDBFE;
}

.trb-field input:focus {
  border-color: #2563EB;
  box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.12);
}

@media (max-width: 767px) {
  .tr-booking-root,
  .tr-booking-status {
    font-size: 16px;
  }
  .tr-booking-root h1,
  .tr-booking-root h2,
  .tr-booking-root h3,
  .tr-booking-root h4,
  .tr-booking-status h1,
  .tr-booking-status h2,
  .trb-step__heading h3 {
    font-size: 25px;
  }
  .tr-booking-root p,
  .tr-booking-status p,
  .tr-booking-root label,
  .tr-booking-root legend,
  .tr-booking-root small,
  .trb-step__heading p {
    font-size: 16px;
  }
}

/* 0.3.1: light-blue booking panel with white choice/input surfaces. */
.tr-booking-root {
  --trb-blue: #2563EB;
  --trb-blue-hover: #1D4ED8;
  --trb-dark: #333333;
  --trb-body: #333333;
  --trb-soft: #EFF6FF;
  font-family: Inter, Arial, sans-serif !important;
  color: #333333 !important;
}
.tr-booking-root .tr-booking__panel {
  background: #EFF6FF !important;
  border-color: #BFDBFE !important;
}
.tr-booking-root .trb-step__heading h3,
.tr-booking-root h1,
.tr-booking-root h2,
.tr-booking-root h3,
.tr-booking-root h4 {
  color: #333333 !important;
  font-family: Outfit, Inter, Arial, sans-serif !important;
  font-weight: 600 !important;
  font-size: 40px;
}
.tr-booking-root,
.tr-booking-root p,
.tr-booking-root label,
.tr-booking-root legend,
.tr-booking-root input,
.tr-booking-root select,
.tr-booking-root textarea,
.tr-booking-status {
  color: #333333;
  font-family: Inter, Arial, sans-serif !important;
  font-size: 17px;
  font-weight: 400;
}
.tr-booking-root .trb-choice,
.tr-booking-root button.trb-choice,
.tr-booking-root .trb-date,
.tr-booking-root .trb-time,
.tr-booking-root .trb-summary,
.tr-booking-root .trb-payment,
.tr-booking-root .trb-location-note,
.tr-booking-root .trb-calendar,
.tr-booking-root .trb-field input,
.tr-booking-root .trb-field select,
.tr-booking-root .trb-field textarea {
  background: #ffffff !important;
}
.tr-booking-root button.trb-choice.is-selected {
  background: #ffffff !important;
  border-color: #2563EB !important;
}
.tr-booking-root .trb-choice small { display: none !important; }
.tr-booking-root .trb-step__count,
.tr-booking-root .trb-payment > strong { color: #2563EB !important; }
.tr-booking-root .trb-button,
.tr-booking-root button.trb-button--next {
  color: #ffffff !important;
  background: #2563EB !important;
}
@media (max-width: 767px) {
  .tr-booking-root .trb-step__heading h3,
  .tr-booking-root h1,
  .tr-booking-root h2,
  .tr-booking-root h3,
  .tr-booking-root h4 { font-size: 25px; }
  .tr-booking-root,
  .tr-booking-root p,
  .tr-booking-root label,
  .tr-booking-root legend,
  .tr-booking-root input,
  .tr-booking-root select,
  .tr-booking-root textarea,
  .tr-booking-status { font-size: 16px; }
}


/* 0.3.2 — definitive visual overrides; stylesheet cache is busted via plugin VERSION. */
.tr-booking-root .tr-booking,
.tr-booking-root .tr-booking__panel {
  background: #EFF6FF !important;
}
.tr-booking-root .tr-booking__panel {
  border-color: #BFDBFE !important;
}
.tr-booking-root .trb-choice,
.tr-booking-root button.trb-choice,
.tr-booking-root .trb-date,
.tr-booking-root .trb-time,
.tr-booking-root .trb-summary,
.tr-booking-root .trb-payment,
.tr-booking-root .trb-location-note,
.tr-booking-root .trb-calendar,
.tr-booking-root .trb-field input,
.tr-booking-root .trb-field select,
.tr-booking-root .trb-field textarea {
  background-color: #FFFFFF !important;
}
.tr-booking-root .trb-choice small {
  display: none !important;
}


/* 0.3.3 — calendar sections blend into the light-blue booking panel.
   Individual date/time buttons remain white. */
.tr-booking-root .trb-calendar {
  background: #EFF6FF !important;
}
