.tb-search-choice {
  min-width: 0;
  position: relative;
}

.tb-search-choice > input { width: 100%; }

.tb-search-choice__panel {
  background: #fff;
  border: 1px solid var(--tb-color-border, #c8d0dc);
  border-radius: 0.625rem;
  box-shadow: 0 0.75rem 2rem rgb(19 39 75 / 16%);
  inset: calc(100% + 0.35rem) 0 auto;
  min-width: min(22rem, 100%);
  position: absolute;
  z-index: 30;
}

.tb-search-choice__panel[hidden] { display: none; }

.tb-search-choice [role="listbox"] {
  max-height: min(18rem, 40dvh);
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-color: var(--tb-color-navy, #13274b) #edf0f5;
  scroll-padding: 0.25rem;
}

.tb-search-choice [role="option"] {
  color: var(--tb-color-navy, #13274b);
  cursor: pointer;
  line-height: 1.35;
  min-height: 44px;
  overflow-wrap: anywhere;
  padding: 0.7rem 0.8rem;
}

.tb-search-choice [aria-selected="true"] {
  background: var(--tb-color-navy, #13274b);
  color: #fff;
}

.tb-search-choice__status {
  border-top: 1px solid var(--tb-color-border, #c8d0dc);
  color: #46546a;
  font-size: 0.875rem;
  padding: 0.6rem 0.8rem;
}

@media (hover: hover) and (pointer: fine) {
  .tb-search-choice [role="option"]:not([aria-selected="true"]):hover { background: #edf0f5; }
}

.tb-booking-page {
  background: var(--tb-color-canvas, #f4f6f9);
  min-height: 60vh;
  padding: 3.5rem 1rem 5rem;
}

.tb-booking-shell {
  margin-inline: auto;
  max-width: 76rem;
}

@keyframes tb-skeleton-sweep {
  from { transform: translateX(-110%); }
  to { transform: translateX(110%); }
}

.tb-booking-page [hidden] {
  display: none;
}

.tb-skeleton,
[data-travelbay-media] {
  background: #e9edf3;
  overflow: hidden;
  position: relative;
}

.tb-skeleton::after,
[data-travelbay-media][data-media-state="loading"]::before {
  animation: tb-skeleton-sweep 1.35s ease-in-out infinite;
  background: linear-gradient(90deg, transparent, rgb(255 255 255 / 62%), transparent);
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
  transform: translateX(-110%);
  z-index: 2;
}

.tb-skeleton {
  border-radius: 0.35rem;
  display: block;
}

.tb-skeleton--line {
  height: 0.8rem;
  margin-top: 0.75rem;
  width: 82%;
}

.tb-skeleton--line-strong {
  height: 1.2rem;
  margin-top: 0;
  width: 68%;
}

.tb-skeleton--line-short {
  width: 44%;
}

.tb-skeleton--control {
  height: 3rem;
  margin-top: 0.75rem;
  width: 100%;
}

[data-travelbay-media] > img {
  opacity: 1;
  transition: opacity 180ms cubic-bezier(0.23, 1, 0.32, 1);
}

[data-travelbay-media][data-media-state="loading"] > img {
  opacity: 0;
}

[data-travelbay-media][data-media-state="error"]::after {
  align-items: center;
  color: var(--tb-color-muted, #596579);
  content: "A kép nem érhető el";
  display: flex;
  font-size: 0.85rem;
  inset: 0;
  justify-content: center;
  padding: 1rem;
  position: absolute;
  text-align: center;
}

.tb-booking-shell > h1 {
  font-size: 2.25rem;
  letter-spacing: -0.03em;
  line-height: 1.15;
  margin: 0 0 1.75rem;
  text-wrap: balance;
}

.tb-booking-tabs {
  margin-inline: auto;
  max-width: 76rem;
  width: 100%;
}

.tb-booking-tabs__list {
  display: flex;
  gap: 0;
}

.tb-booking-tabs__tab {
  background: #fff;
  border: 1px solid var(--tb-color-border, #c8d0dc);
  border-radius: 0.625rem 0 0;
  color: var(--tb-color-navy, #13274b);
  cursor: pointer;
  font: inherit;
  font-weight: 700;
  min-height: 3.75rem;
  padding: 0.75rem 1.5rem;
  text-align: left;
  transition: background-color 180ms cubic-bezier(0.23, 1, 0.32, 1), border-color 180ms cubic-bezier(0.23, 1, 0.32, 1), color 180ms cubic-bezier(0.23, 1, 0.32, 1), transform 120ms cubic-bezier(0.23, 1, 0.32, 1);
  width: 50%;
}

.tb-booking-tabs__tab + .tb-booking-tabs__tab {
  border-left: 0;
  border-radius: 0 0.625rem 0 0;
}

.tb-booking-tabs__tab[aria-selected="true"] {
  background: var(--tb-color-navy, #13274b);
  border-color: var(--tb-color-navy, #13274b);
  color: #fff;
}

.tb-booking-tabs__tab:active {
  transform: scale(0.985);
}

.tb-booking-tabs__panel > .tb-search-form {
  border-radius: 0 0 0.625rem 0.625rem;
}

.tb-booking-tabs__title,
.tb-booking-tabs__panel-title {
  margin-top: 0;
}

.tb-search-form {
  --tb-search-control-height: 3.25rem;
  --tb-search-radius: 0.625rem;
  --tb-search-ease: cubic-bezier(0.23, 1, 0.32, 1);
  background: #fff;
  border: 1px solid var(--tb-color-border-subtle, #d9dee7);
  border-radius: 0.75rem;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 1.75rem;
}

.tb-search-form > :is(.tb-search-grid, .tb-cruise-options, .tb-advanced-filters) {
  grid-column: 1 / -1;
}

.tb-search-grid {
  align-items: end;
  display: grid;
  gap: 1.125rem;
}

.tb-search-grid--package {
  grid-template-columns: repeat(12, minmax(0, 1fr));
}

.tb-search-grid--package > .tb-field--search-type {
  grid-column: span 2;
}

.tb-search-grid--package > .tb-field--destination {
  grid-column: span 4;
}

.tb-search-grid--package > .tb-field--category {
  grid-column: span 3;
}

.tb-search-grid--package > .tb-field--travel-mode {
  grid-column: span 3;
}

.tb-search-grid--package > .tb-field--start-place {
  grid-column: span 3;
}

.tb-search-grid--package > .tb-field--accommodation-name {
  grid-column: span 4;
}

.tb-search-grid--package > .tb-fieldset--dates {
  grid-column: span 5;
}

.tb-search-grid--package > .tb-field--duration {
  grid-column: span 4;
}

.tb-search-grid--package > .tb-field--adults,
.tb-search-grid--package > .tb-field--children {
  grid-column: span 2;
}

.tb-search-grid--package-primary > .tb-field--destination,
.tb-search-grid--package-primary > .tb-fieldset--dates {
  grid-column: span 4;
}

.tb-search-grid--cruise {
  grid-template-columns: repeat(3, minmax(12rem, 1fr));
}

.tb-search-grid--cruise-primary {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.tb-field,
.tb-fieldset,
.tb-choice-group {
  border: 0;
  display: grid;
  gap: 0.4rem;
  margin: 0;
  min-width: 0;
  padding: 0;
}

.tb-field[hidden] {
  display: none;
}

.tb-field label,
.tb-fieldset legend,
.tb-choice-group legend {
  color: var(--tb-color-navy, #13274b);
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.25;
}

.tb-field input,
.tb-field select,
.tb-fieldset input {
  background: #fff;
  border: 1px solid var(--tb-color-border, #c8d0dc);
  border-radius: var(--tb-search-radius);
  box-sizing: border-box;
  color: var(--tb-color-text, #2f2f2f);
  font: inherit;
  font-size: 1rem;
  height: var(--tb-search-control-height);
  line-height: 1.25;
  min-width: 0;
  padding: 0.75rem 0.875rem;
  transition: background-color 180ms var(--tb-search-ease), border-color 180ms var(--tb-search-ease), box-shadow 180ms var(--tb-search-ease), color 180ms var(--tb-search-ease);
  width: 100%;
}

.tb-field select,
.tb-fieldset select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='m4 6 4 4 4-4' stroke='%2313274b' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-position: right 0.875rem center;
  background-repeat: no-repeat;
  padding-right: 2.5rem;
  text-overflow: ellipsis;
}

.tb-field input::placeholder,
.tb-fieldset input::placeholder {
  color: var(--tb-color-muted, #596579);
  opacity: 1;
}

.tb-field input:disabled,
.tb-field select:disabled,
.tb-fieldset input:disabled {
  background-color: #eef1f5;
  color: #596579;
  cursor: not-allowed;
}

.tb-field :is(input, select)[aria-invalid="true"],
.tb-fieldset :is(input, select)[aria-invalid="true"] {
  border-color: var(--tb-color-coral-text, #c63f36);
}

.tb-field select[multiple] {
  appearance: auto;
  background-image: none;
  height: 11rem;
  padding: 0.375rem;
}

.tb-field select[multiple] option {
  border-radius: 0.35rem;
  line-height: 1.35;
  padding: 0.5rem 0.625rem;
  white-space: normal;
}

.tb-fieldset--dates {
  align-items: end;
  grid-template-columns: 1fr 1fr;
}

.tb-date-control {
  cursor: pointer;
  display: block;
  min-width: 0;
  position: relative;
}

.tb-date-control input {
  cursor: pointer;
}

.tb-date-control__placeholder {
  color: #596579;
  left: 0.875rem;
  line-height: 1;
  pointer-events: none;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}

.tb-date-control[data-has-value] .tb-date-control__placeholder,
.tb-date-control:focus-within .tb-date-control__placeholder {
  display: none;
}

.tb-date-control:not([data-has-value]):not(:focus-within) input::-webkit-datetime-edit {
  color: transparent;
}

.tb-date-control input::-webkit-calendar-picker-indicator {
  cursor: pointer;
  height: 100%;
  inset: 0;
  margin: 0;
  opacity: 0;
  padding: 0;
  position: absolute;
  width: 100%;
}

.tb-fieldset--dates legend {
  grid-column: 1 / -1;
}

.tb-choice-group label {
  align-items: center;
  display: flex;
  gap: 0.625rem;
  min-height: 2.8125rem;
}

.tb-cruise-options {
  align-items: start;
  display: grid;
  gap: 1.25rem 2rem;
  grid-template-columns: minmax(10rem, 0.75fr) minmax(20rem, 1.45fr) minmax(17rem, 1fr);
  margin-top: 1.75rem;
}

.tb-choice-group--labels {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.tb-choice-group--labels legend {
  grid-column: 1 / -1;
}

.tb-field-help {
  color: var(--tb-color-muted, #596579);
  font-size: 0.875rem;
  line-height: 1.4;
}

.tb-field-error {
  color: var(--tb-color-coral-text, #c63f36);
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.4;
}

.tb-advanced-filters {
  background: #f8fafc;
  border: 1px solid var(--tb-color-border-subtle, #d9dee7);
  border-radius: var(--tb-search-radius);
  margin-top: 1.75rem;
  overflow: clip;
}

.tb-advanced-filters summary {
  align-items: center;
  color: var(--tb-color-navy, #13274b);
  cursor: pointer;
  display: flex;
  font-weight: 700;
  justify-content: space-between;
  list-style: none;
  min-height: var(--tb-search-control-height);
  padding: 0.75rem 1rem;
  transition: background-color 180ms var(--tb-search-ease), color 180ms var(--tb-search-ease);
  width: 100%;
}

.tb-advanced-filters__summary-label {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  min-width: 0;
}

.tb-advanced-filters__count {
  background: #fff3f2;
  border-radius: 0.35rem;
  color: var(--tb-color-coral-text, #c63f36);
  font-size: 0.75rem;
  line-height: 1;
  padding: 0.3rem 0.45rem;
}

.tb-advanced-filters > summary::-webkit-details-marker,
.tb-subfilter > summary::-webkit-details-marker {
  display: none;
}

.tb-advanced-filters > summary::after,
.tb-subfilter > summary::after {
  border-bottom: 2px solid var(--tb-color-coral-text, #c63f36);
  border-right: 2px solid var(--tb-color-coral-text, #c63f36);
  content: "";
  flex: 0 0 auto;
  height: 0.5rem;
  margin: -0.2rem 0.25rem 0 1rem;
  transform: rotate(45deg);
  transition: transform 180ms var(--tb-search-ease);
  width: 0.5rem;
}

.tb-advanced-filters[open] > summary {
  background: #f1f6fb;
  border-bottom: 1px solid var(--tb-color-border-subtle, #d9dee7);
}

.tb-advanced-filters[open] > summary::after,
.tb-subfilter[open] > summary::after {
  transform: translateY(0.2rem) rotate(225deg);
}

.tb-advanced-filters__content {
  padding: 0 1rem 1rem;
}

.tb-subfilter {
  border-top: 1px solid var(--tb-color-border-subtle, #d9dee7);
  margin-top: 1.25rem;
}

.tb-subfilter > summary {
  align-items: center;
  display: flex;
  justify-content: space-between;
  list-style: none;
  min-height: 2.8125rem;
  padding-block: 0.5rem;
}

.tb-subfilter .tb-filter-group {
  margin-top: 0;
}

.tb-port-filter {
  border: 1px solid var(--tb-color-border-subtle, #d9dee7);
  border-radius: 0.625rem;
  overflow: clip;
}

.tb-port-filter > summary {
  background: #fff;
  padding-inline: 0.875rem;
}

.tb-port-filter[open] > summary {
  background: #f1f6fb;
  border-bottom: 1px solid var(--tb-color-border-subtle, #d9dee7);
}

.tb-port-filter__selection {
  color: var(--tb-color-muted, #596579);
  font-size: 0.8125rem;
  font-weight: 700;
  margin-left: auto;
}

.tb-port-filter .tb-filter-group {
  border: 0;
  padding: 0.875rem;
}

.tb-port-filter__choices {
  max-height: 14rem;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding-right: 0.25rem;
  scrollbar-gutter: stable;
}

.tb-port-filter > .tb-field-help {
  display: block;
  padding: 0 0.875rem 0.875rem;
}

.tb-advanced-filters__grid {
  align-items: end;
  display: grid;
  gap: 1rem 1.25rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  padding-top: 1.25rem;
}

.tb-advanced-filters__wide {
  margin-top: 1.25rem;
}

.tb-fieldset--price {
  grid-template-columns: 1fr 1fr;
}

.tb-fieldset--price legend {
  grid-column: 1 / -1;
}

.tb-filter-group {
  border: 0;
  border-top: 1px solid var(--tb-color-border-subtle, #d9dee7);
  margin: 1.25rem 0 0;
  padding: 1.25rem 0 0;
}

.tb-filter-group legend {
  color: var(--tb-color-navy, #13274b);
  font-weight: 700;
  margin-bottom: 0.6rem;
}

.tb-check-grid {
  display: grid;
  gap: 0.25rem 1rem;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.tb-check-grid label,
.tb-choice-row label {
  align-items: center;
  display: flex;
  gap: 0.625rem;
  line-height: 1.3;
  min-height: 2.8125rem;
  min-width: 0;
}

.tb-check-grid input,
.tb-choice-row input,
.tb-choice-group input {
  accent-color: var(--tb-color-navy, #13274b);
  flex: 0 0 auto;
  height: 1.125rem;
  margin: 0;
  width: 1.125rem;
}

.tb-choice-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 1.5rem;
}

.tb-provider-status {
  align-self: center;
  color: #4d5a6d;
  font-size: 0.875rem;
  line-height: 1.45;
  margin: 1rem 0 0;
}

.tb-provider-status[data-catalog-state="failed"],
.tb-provider-status[data-catalog-state="timeout"] {
  color: var(--tb-color-coral-text, #c63f36);
}

.tb-search-form > .tb-search-submit {
  grid-column: 2;
  justify-self: end;
  margin-top: 1.25rem;
  min-width: min(100%, 14rem);
}

.tb-search-submit,
.tb-button {
  align-items: center;
  background: var(--tb-color-navy, #13274b);
  border: 0;
  border-radius: var(--tb-search-radius, 0.625rem);
  box-sizing: border-box;
  color: #fff;
  cursor: pointer;
  display: inline-flex;
  font: inherit;
  font-weight: 700;
  justify-content: center;
  min-height: var(--tb-search-control-height, 3.25rem);
  padding: 0.75rem 1.5rem;
  text-decoration: none;
  transition: background-color 180ms cubic-bezier(0.23, 1, 0.32, 1), color 180ms cubic-bezier(0.23, 1, 0.32, 1), opacity 180ms cubic-bezier(0.23, 1, 0.32, 1), transform 120ms cubic-bezier(0.23, 1, 0.32, 1);
}

.tb-search-submit:active,
.tb-button:active {
  transform: scale(0.97);
}

.tb-search-submit:disabled,
.tb-button:disabled {
  cursor: wait;
  opacity: 0.72;
  transform: none;
}

.tb-search-form :focus-visible,
.tb-booking-tabs__tab:focus-visible,
.tb-button:focus-visible,
.tb-results-filter__reset:focus-visible,
.tb-results-filter__close:focus-visible,
.tb-filter-trigger:focus-visible,
.tb-results-sort select:focus-visible,
.tb-active-filter:focus-visible,
.tb-cruise-configurator :focus-visible {
  outline: 3px solid var(--tb-color-active, #4f8fcc);
  outline-offset: 2px;
}

@media (hover: hover) and (pointer: fine) {
  .tb-booking-tabs__tab:not([aria-selected="true"]):hover {
    background: #f1f6fb;
    border-color: var(--tb-color-navy, #13274b);
  }

  .tb-field :is(input, select):not(:disabled):hover,
  .tb-fieldset :is(input, select):not(:disabled):hover {
    border-color: #8797ad;
  }

  .tb-advanced-filters > summary:hover,
  .tb-subfilter > summary:hover {
    background: #edf3f9;
  }

  .tb-search-submit:hover,
  .tb-button:hover,
  .tb-filter-trigger:hover {
    background: var(--tb-color-deep-navy, #001236);
    color: #fff;
  }

  .tb-results-filter__reset:not(:disabled):hover,
  .tb-results-filter__close:hover,
  .tb-active-filter:hover {
    background: #e5edf6;
  }
}

.tb-customer-draft :focus-visible {
  outline: 3px solid var(--tb-color-active, #4f8fcc);
  outline-offset: 3px;
}

.tb-notice {
  background: var(--tb-color-info-surface, #f1f6fb);
  border: 1px solid var(--tb-color-active, #4f8fcc);
  padding: 1.25rem;
}

.tb-notice--error {
  background: var(--tb-color-error-surface, #fff3f2);
  border-color: var(--tb-color-coral-text, #c63f36);
}

.tb-notice__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1rem;
}

.tb-availability-check,
.tb-calculation-check {
  display: grid;
  gap: 0.75rem;
}

.tb-availability-check > *,
.tb-calculation-check > * {
  margin-block: 0;
}

.tb-availability-check .tb-button,
.tb-calculation-check .tb-button {
  justify-self: start;
}

.tb-availability-check__status,
.tb-calculation-check__status {
  color: var(--tb-color-navy, #13274b);
  font-weight: 700;
}

.tb-results-header {
  align-items: end;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  margin-bottom: 1.5rem;
}

.tb-results-shell {
  max-width: 88rem;
}

.tb-results-header h1 {
  margin: 0;
  overflow-wrap: anywhere;
}

.tb-results-context {
  border-bottom: 1px solid var(--tb-color-border-subtle, #d9dee7);
  display: grid;
  gap: 0.75rem;
  margin: -0.25rem 0 1.5rem;
  padding-bottom: 1.25rem;
}

.tb-results-context__path {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  font-size: 0.875rem;
  gap: 0.3rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.tb-results-context__path li + li::before {
  color: var(--tb-color-muted, #596579);
  content: "/";
  margin-right: 0.3rem;
}

.tb-results-context__path a {
  color: var(--tb-color-navy, #13274b);
  font-weight: 750;
}

.tb-results-context__path [aria-current="page"] {
  color: var(--tb-color-muted, #596579);
}

.tb-results-context__related {
  align-items: start;
  display: grid;
  gap: 0.75rem;
  grid-template-columns: max-content minmax(0, 1fr);
}

.tb-results-context__related > span {
  color: var(--tb-color-navy, #13274b);
  font-size: 0.875rem;
  font-weight: 800;
  padding-top: 0.7rem;
}

.tb-results-context__links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.tb-results-context__links a {
  align-items: center;
  background: #fff;
  border: 1px solid #b9c9dc;
  border-radius: 0.45rem;
  color: var(--tb-color-navy, #13274b);
  display: inline-flex;
  font-size: 0.85rem;
  font-weight: 750;
  min-height: 2.75rem;
  padding: 0.55rem 0.7rem;
  text-decoration: none;
  transition: background-color 160ms cubic-bezier(0.23, 1, 0.32, 1), border-color 160ms cubic-bezier(0.23, 1, 0.32, 1), transform 120ms cubic-bezier(0.23, 1, 0.32, 1);
}

.tb-results-context__links a:hover,
.tb-results-context__links a:focus-visible {
  background: #f1f6fb;
  border-color: var(--tb-color-active, #4f8fcc);
}

.tb-results-context__links a:active {
  transform: scale(0.97);
}

.tb-results-header__eyebrow,
.tb-result-card__location {
  color: var(--tb-color-coral-text, #c63f36);
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  margin: 0 0 0.25rem;
  text-transform: uppercase;
}

.tb-button--secondary {
  background: transparent;
  border: 1px solid var(--tb-color-navy, #13274b);
  color: var(--tb-color-navy, #13274b);
}

.tb-package-print {
  justify-self: start;
}

.tb-print-note {
  display: none;
}

.tb-result-count {
  color: var(--tb-color-muted, #596579);
  font-weight: 700;
}

.tb-result-count__scope {
  color: var(--tb-color-navy, #13274b);
  display: inline;
  font-size: 0.82rem;
  margin-left: 0.35rem;
}

.tb-result-count__scope::before {
  color: var(--tb-color-coral-text, #c63f36);
  content: "·";
  margin-right: 0.35rem;
}

.tb-unified-search-shell {
  max-width: 76rem;
}

.tb-unified-search-hero {
  margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
  max-width: 52rem;
}

.tb-unified-search-hero__eyebrow {
  color: var(--tb-color-coral-text, #c63f36);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  margin: 0 0 0.5rem;
  text-transform: uppercase;
}

.tb-unified-search-hero h1 {
  color: var(--tb-color-navy, #13274b);
  font-size: clamp(2rem, 5vw, 3.6rem);
  letter-spacing: -0.04em;
  line-height: 1.05;
  margin: 0;
  overflow-wrap: anywhere;
}

.tb-unified-search-form {
  align-items: stretch;
  background: #fff;
  border: 1px solid #aebbd0;
  border-radius: 0.75rem;
  box-shadow: 0 0.75rem 2rem rgb(19 39 75 / 8%);
  display: grid;
  grid-template-columns: 3rem minmax(0, 1fr) auto;
  margin-top: 1.25rem;
  overflow: hidden;
  transition: border-color 160ms cubic-bezier(0.23, 1, 0.32, 1), box-shadow 160ms cubic-bezier(0.23, 1, 0.32, 1);
}

.tb-unified-search-form:focus-within {
  border-color: var(--tb-color-navy, #13274b);
  box-shadow: 0 0 0 3px rgb(79 143 204 / 22%), 0 0.75rem 2rem rgb(19 39 75 / 8%);
}

.tb-unified-search-form__icon {
  align-self: center;
  height: 1.25rem;
  justify-self: center;
  position: relative;
  width: 1.25rem;
}

.tb-unified-search-form__icon::before {
  border: 2px solid var(--tb-color-navy, #13274b);
  border-radius: 50%;
  content: "";
  height: 0.8rem;
  left: 0;
  position: absolute;
  top: 0;
  width: 0.8rem;
}

.tb-unified-search-form__icon::after {
  background: var(--tb-color-navy, #13274b);
  content: "";
  height: 2px;
  position: absolute;
  right: 0;
  top: 0.85rem;
  transform: rotate(45deg);
  transform-origin: left center;
  width: 0.5rem;
}

.tb-unified-search-form input {
  appearance: none;
  background: transparent;
  border: 0;
  color: var(--tb-color-navy, #13274b);
  font: inherit;
  font-size: 1.05rem;
  min-height: 3.75rem;
  min-width: 0;
  outline: 0;
  padding: 0.75rem 0.5rem 0.75rem 0;
  width: 100%;
}

.tb-unified-search-form input::placeholder {
  color: #68758a;
  opacity: 1;
}

.tb-unified-search-form button {
  background: var(--tb-color-navy, #13274b);
  border: 0;
  color: #fff;
  cursor: pointer;
  font: inherit;
  font-weight: 800;
  min-height: 3.75rem;
  padding: 0.75rem 1.5rem;
  transition: background-color 160ms cubic-bezier(0.23, 1, 0.32, 1), transform 120ms cubic-bezier(0.23, 1, 0.32, 1);
}

.tb-unified-search-tabs {
  border-bottom: 1px solid var(--tb-color-border-subtle, #d9dee7);
  display: flex;
  gap: 0.25rem;
  margin-bottom: 1.25rem;
  overflow-x: auto;
  scrollbar-width: thin;
}

.tb-unified-search-tabs a {
  border-bottom: 3px solid transparent;
  color: var(--tb-color-muted, #596579);
  flex: 0 0 auto;
  font-weight: 800;
  min-height: 2.75rem;
  padding: 0.7rem 0.9rem 0.55rem;
  text-decoration: none;
}

.tb-unified-search-tabs a[aria-current="page"] {
  border-bottom-color: var(--tb-color-coral-text, #c63f36);
  color: var(--tb-color-navy, #13274b);
}

.tb-unified-search-summary {
  margin-bottom: 1rem;
}

.tb-unified-search-summary .tb-result-count {
  margin: 0;
}

.tb-unified-search-summary .tb-results-partial {
  margin-top: 0.75rem;
}

.tb-result-card__kind {
  align-self: flex-start;
  color: var(--tb-color-coral-text, #c63f36);
  font-size: 0.72rem;
  font-weight: 850;
  letter-spacing: 0.08em;
  margin-bottom: 0.55rem;
  text-transform: uppercase;
}

@media (hover: hover) and (pointer: fine) {
  .tb-unified-search-form button:hover {
    background: var(--tb-color-coral-text, #c63f36);
  }

  .tb-unified-search-tabs a:hover {
    color: var(--tb-color-navy, #13274b);
  }
}

.tb-results-partial {
  background: #fff8ed;
  border: 1px solid #e6b86a;
  border-radius: 0.625rem;
  color: var(--tb-color-navy, #13274b);
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.5;
  margin: 0 0 1rem;
  padding: 0.75rem 0.875rem;
}

.tb-results-layout {
  align-items: start;
  display: grid;
  gap: 2rem;
  grid-template-columns: minmax(17.5rem, 19rem) minmax(0, 1fr);
}

.tb-results-content {
  min-width: 0;
}

.tb-results-filter {
  min-width: 0;
}

.tb-results-filter__backdrop {
  display: none;
}

.tb-results-filter__surface {
  background: #fff;
  border: 1px solid var(--tb-color-border-subtle, #d9dee7);
  border-radius: 0.75rem;
  max-height: calc(100vh - 7rem);
  overflow-y: auto;
  position: sticky;
  top: 6rem;
}

.tb-results-filter__header {
  align-items: center;
  background: #fff;
  border-bottom: 1px solid var(--tb-color-border-subtle, #d9dee7);
  display: flex;
  justify-content: space-between;
  min-height: 3.75rem;
  padding: 0.75rem 1rem;
  position: sticky;
  top: 0;
  z-index: 1;
}

.tb-results-filter__header h2 {
  font-size: 1.125rem;
  margin: 0;
}

.tb-results-filter__header-actions {
  align-items: center;
  display: flex;
  gap: 0.25rem;
}

.tb-results-filter__reset,
.tb-results-filter__close {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: 0.4rem;
  color: var(--tb-color-navy, #13274b);
  cursor: pointer;
  display: inline-flex;
  font: inherit;
  font-weight: 700;
  justify-content: center;
  min-height: 2.75rem;
  padding: 0.5rem 0.625rem;
  transition: background-color 160ms cubic-bezier(0.23, 1, 0.32, 1), color 160ms cubic-bezier(0.23, 1, 0.32, 1), transform 120ms cubic-bezier(0.23, 1, 0.32, 1);
}

.tb-results-filter__reset:disabled {
  color: var(--tb-color-muted, #596579);
  cursor: not-allowed;
  opacity: 0.55;
}

.tb-results-filter__close {
  display: none;
  font-size: 1.5rem;
  line-height: 1;
  min-width: 2.75rem;
}

.tb-results-filter__body {
  padding: 1rem;
}

.tb-results-filter .tb-search-form {
  background: transparent;
  border: 0;
  border-radius: 0;
  display: block;
  padding: 0;
}

.tb-results-filter :is(.tb-search-grid--package, .tb-search-grid--cruise, .tb-search-grid--package-primary, .tb-search-grid--cruise-primary, .tb-advanced-filters__grid, .tb-cruise-options, .tb-check-grid, .tb-choice-group--labels) {
  grid-template-columns: minmax(0, 1fr);
}

.tb-results-filter .tb-search-grid--package > .tb-field,
.tb-results-filter .tb-search-grid--package > .tb-fieldset,
.tb-results-filter .tb-cruise-options > .tb-field--ports {
  grid-column: 1 / -1;
}

.tb-results-filter .tb-fieldset--dates,
.tb-results-filter .tb-fieldset--price {
  grid-template-columns: minmax(0, 1fr);
}

.tb-results-filter :is(.tb-fieldset--dates, .tb-fieldset--price) legend {
  grid-column: auto;
}

.tb-results-filter .tb-advanced-filters {
  margin-top: 1rem;
}

.tb-results-filter .tb-advanced-filters__content {
  padding-inline: 0.75rem;
}

.tb-results-filter .tb-search-submit {
  background-clip: padding-box;
  bottom: 0.75rem;
  box-shadow: 0 0.75rem 1.75rem rgb(19 39 75 / 20%);
  justify-self: stretch;
  margin-top: 1rem;
  position: sticky;
  width: 100%;
  z-index: 5;
}

.tb-results-filter .tb-provider-status {
  margin-top: 1rem;
}

.tb-results-toolbar {
  align-items: end;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  margin-bottom: 1rem;
  min-height: 3.25rem;
}

.tb-results-toolbar .tb-result-count {
  margin: 0;
}

.tb-filter-trigger {
  align-items: center;
  background: var(--tb-color-navy, #13274b);
  border: 1px solid var(--tb-color-navy, #13274b);
  border-radius: 0.5rem;
  color: #fff;
  cursor: pointer;
  display: none;
  font: inherit;
  font-weight: 800;
  gap: 0.5rem;
  justify-content: center;
  min-height: 2.75rem;
  padding: 0.6rem 0.9rem;
}

.tb-filter-trigger__count {
  align-items: center;
  background: var(--tb-color-coral, #f26458);
  border-radius: 50%;
  display: inline-flex;
  font-size: 0.75rem;
  height: 1.5rem;
  justify-content: center;
  min-width: 1.5rem;
  padding-inline: 0.25rem;
}

.tb-results-sort {
  align-items: center;
  color: var(--tb-color-navy, #13274b);
  display: flex;
  font-size: 0.875rem;
  font-weight: 700;
  gap: 0.6rem;
}

.tb-results-sort select {
  appearance: none;
  background-color: #fff;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='m4 6 4 4 4-4' stroke='%2313274b' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-position: right 0.75rem center;
  background-repeat: no-repeat;
  border: 1px solid var(--tb-color-border, #c8d0dc);
  border-radius: 0.5rem;
  color: var(--tb-color-text, #2f2f2f);
  font: inherit;
  min-height: 2.75rem;
  padding: 0.55rem 2.25rem 0.55rem 0.75rem;
}

.tb-results-sort select:disabled {
  background-color: #f4f6f9;
  color: var(--tb-color-muted, #596579);
  opacity: 1;
}

.tb-results-sort small {
  color: var(--tb-color-muted, #596579);
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1.35;
  max-width: 16rem;
}

.tb-active-filters {
  margin: -0.25rem 0 1rem;
}

.tb-active-filters__list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.tb-active-filter {
  align-items: center;
  background: #f1f6fb;
  border: 1px solid #b9c9dc;
  border-radius: 0.4rem;
  color: var(--tb-color-navy, #13274b);
  cursor: pointer;
  display: inline-flex;
  font: inherit;
  font-size: 0.85rem;
  font-weight: 700;
  gap: 0.45rem;
  min-height: 2.75rem;
  max-width: 100%;
  padding: 0.45rem 0.65rem;
  text-align: left;
  transition: background-color 160ms cubic-bezier(0.23, 1, 0.32, 1), border-color 160ms cubic-bezier(0.23, 1, 0.32, 1), transform 120ms cubic-bezier(0.23, 1, 0.32, 1);
}

.tb-active-filter span:first-child {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tb-active-filter span:last-child {
  font-size: 1.125rem;
  line-height: 1;
}

.tb-results-filter__reset:active,
.tb-results-filter__close:active,
.tb-filter-trigger:active,
.tb-active-filter:active {
  transform: scale(0.97);
}

.tb-results {
  display: grid;
  gap: 1rem;
}

.tb-result-card {
  align-items: stretch;
  background: #fff;
  border: 1px solid var(--tb-color-border-subtle, #d9dee7);
  border-radius: 0.875rem;
  box-shadow: 0 0.5rem 1.5rem rgb(19 39 75 / 6%);
  display: grid;
  grid-template-columns: minmax(14rem, 18rem) minmax(16rem, 1fr) minmax(13rem, 14.5rem);
  overflow: hidden;
  transition: border-color 160ms cubic-bezier(0.23, 1, 0.32, 1), box-shadow 160ms cubic-bezier(0.23, 1, 0.32, 1);
}

.tb-result-card[hidden] {
  display: none;
}

.tb-result-card--without-image {
  grid-template-columns: minmax(17rem, 1fr) minmax(13.5rem, 15rem);
}

.tb-result-card__image-link {
  align-self: stretch;
  background: #edf1f6;
  display: block;
  height: 100%;
  min-height: 12rem;
  overflow: hidden;
  position: relative;
}

.tb-result-card__image {
  display: block;
  inset: 0;
  height: 100%;
  max-height: none;
  min-height: 100%;
  object-fit: cover;
  position: absolute;
  width: 100%;
}

.tb-result-card__discount-ribbon {
  background: var(--tb-color-coral-text, #c63f36);
  border-radius: 0 0.45rem 0.45rem 0;
  box-shadow: 0 0.35rem 0.85rem rgb(19 39 75 / 18%);
  color: #fff;
  display: grid;
  left: 0;
  line-height: 1;
  padding: 0.55rem 0.75rem 0.5rem;
  position: absolute;
  text-align: center;
  text-transform: uppercase;
  top: 0.75rem;
  z-index: 3;
}

.tb-result-card__discount-ribbon::after {
  border-left: 0.35rem solid transparent;
  border-top: 0.35rem solid #8f2f29;
  bottom: -0.35rem;
  content: "";
  left: 0;
  position: absolute;
}

.tb-result-card__discount-ribbon strong {
  font-size: 1.15rem;
  letter-spacing: -0.02em;
}

.tb-result-card__discount-ribbon span {
  font-size: 0.625rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  margin-top: 0.25rem;
}

.tb-result-card__body,
.tb-result-card__action {
  padding: 0.875rem;
}

.tb-result-card__body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
}

.tb-result-card__heading {
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem 0.65rem;
}

.tb-result-card__body h2 {
  color: var(--tb-color-navy, #13274b);
  font-size: clamp(1.15rem, 1.5vw, 1.35rem);
  line-height: 1.2;
  margin: 0;
  overflow-wrap: anywhere;
}

.tb-result-card__body h2 a {
  align-items: center;
  color: inherit;
  display: inline-flex;
  min-height: 44px;
  text-decoration: none;
}

.tb-result-card__rating {
  color: var(--tb-color-coral-text, #c63f36);
  flex: 0 0 auto;
  font-size: 0.9rem;
  letter-spacing: 0.08em;
}

.tb-result-card__summary {
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  color: var(--tb-color-text, #2f2f2f);
  display: -webkit-box;
  line-height: 1.5;
  margin: 0.65rem 0 0;
  overflow: hidden;
}

.tb-offer-badges {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-bottom: 0.65rem;
}

.tb-offer-badge {
  background: #fff4e8;
  border: 1px solid #efb17e;
  border-radius: 999px;
  color: #73310f;
  display: inline-flex;
  font-size: 0.75rem;
  font-weight: 800;
  line-height: 1.2;
  max-width: 100%;
  overflow-wrap: anywhere;
  padding: 0.3rem 0.55rem;
}

.tb-offer-badge--discount {
  background: var(--tb-color-coral-text, #c63f36);
  border-color: var(--tb-color-coral-text, #c63f36);
  color: #fff;
}

.tb-result-card__meta {
  color: var(--tb-color-navy, #13274b);
  font-weight: 750;
  margin: 0.75rem 0 0;
}

.tb-result-card__action {
  align-content: center;
  background: #f6f8fb;
  border-left: 1px solid var(--tb-color-border-subtle, #d9dee7);
  display: grid;
  gap: 0.65rem;
  justify-items: stretch;
  min-width: 0;
}

.tb-result-card__price {
  color: var(--tb-color-navy, #13274b);
  font-size: 1.3rem;
  font-weight: 800;
  margin: 0.2rem 0 0;
  overflow-wrap: anywhere;
}

.tb-result-card__price-block > span,
.tb-offer__price-summary > span {
  color: var(--tb-color-muted, #596579);
  font-size: 0.875rem;
  font-weight: 700;
}

.tb-result-card__price-block small,
.tb-offer__price-summary small {
  color: var(--tb-color-muted, #596579);
  display: block;
  line-height: 1.45;
  margin-top: 0.35rem;
}

.tb-result-card__previous-price,
.tb-offer__price-summary del {
  color: var(--tb-color-muted, #596579);
  display: block;
  font-size: 0.875rem;
  margin-top: 0.3rem;
}

.tb-result-card__price-updated,
.tb-offer__price-summary time {
  color: var(--tb-color-muted, #596579);
  display: block;
  font-size: 0.75rem;
  line-height: 1.4;
  margin-top: 0.25rem;
}

[data-price-state="verified"] [data-price-status],
[data-price-state="verified"] [data-offer-price-status] {
  color: #286344;
}

[data-price-state="changed"] [data-price-status],
[data-price-state="changed"] [data-offer-price-status],
[data-price-state="failed"] [data-price-status],
[data-price-state="failed"] [data-offer-price-status] {
  color: #9c332c;
}

.tb-result-card__price-fallback,
.tb-offer__price-fallback {
  color: var(--tb-color-navy, #13274b);
  font-weight: 800;
  line-height: 1.4;
  margin: 0.35rem 0 0;
}

.tb-result-card__availability,
.tb-offer__availability {
  color: var(--tb-color-navy, #13274b);
  font-weight: 700;
  line-height: 1.4;
  margin: 0;
}

.tb-offer__party-summary {
  color: var(--tb-color-navy, #13274b);
  line-height: 1.45;
  margin: 0.75rem 0 0;
}

.tb-result-card__availability::before,
.tb-offer__availability::before {
  background: var(--tb-color-coral-text, #c63f36);
  border-radius: 50%;
  content: "";
  display: inline-block;
  height: 0.5rem;
  margin-right: 0.5rem;
  width: 0.5rem;
}

.tb-result-card__availability[data-availability-state="available-indicated"]::before,
.tb-offer__availability[data-availability-state="available-indicated"]::before {
  background: #2f6f4e;
}

.tb-result-card__availability[data-availability-state="on-request"]::before,
.tb-offer__availability[data-availability-state="on-request"]::before,
.tb-result-card__availability[data-availability-state="checking"]::before,
.tb-offer__availability[data-availability-state="checking"]::before {
  background: #d8782f;
}

.tb-result-card__availability[data-availability-state="failed"]::before,
.tb-offer__availability[data-availability-state="failed"]::before,
.tb-result-card__availability[data-availability-state="unavailable"]::before,
.tb-offer__availability[data-availability-state="unavailable"]::before {
  background: #a8342c;
}

.tb-result-card__actions {
  display: grid;
  gap: 0.6rem;
}

.tb-result-card__actions .tb-button--secondary {
  background: transparent;
  border: 1px solid var(--tb-color-navy, #13274b);
  color: var(--tb-color-navy, #13274b);
}

.tb-result-card__facts,
.tb-offer__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1.25rem;
  list-style: none;
  margin: 0.75rem 0 0;
  padding: 0;
}

.tb-result-card__facts li,
.tb-offer__meta li {
  color: var(--tb-color-muted, #596579);
}

.tb-result-card__facts li {
  align-items: center;
  display: inline-flex;
  gap: 0.35rem;
}

.tb-result-card__facts li::before {
  background: var(--tb-color-coral, #f26458);
  border-radius: 50%;
  content: "";
  height: 0.3rem;
  width: 0.3rem;
}

.tb-result-card__facts--structured {
  display: grid;
  gap: 0.45rem 0.875rem;
  grid-template-columns: repeat(auto-fit, minmax(7.5rem, 1fr));
  margin-top: 0.85rem;
}

.tb-result-card__facts--structured > div {
  min-width: 0;
}

.tb-result-card__facts--structured dt {
  color: var(--tb-color-muted, #596579);
  font-size: 0.7rem;
  font-weight: 750;
  line-height: 1.2;
  margin: 0;
}

.tb-result-card__facts--structured dd {
  color: var(--tb-color-navy, #13274b);
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.35;
  margin: 0.15rem 0 0;
  overflow-wrap: anywhere;
}

.tb-pagination,
.tb-pagination__pages {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.tb-pagination {
  justify-content: center;
  margin-top: 1.5rem;
}

.tb-pagination__button {
  align-items: center;
  background: #fff;
  border: 1px solid var(--tb-color-border, #c8d0dc);
  border-radius: 0.5rem;
  color: var(--tb-color-navy, #13274b);
  cursor: pointer;
  display: inline-flex;
  font: inherit;
  font-weight: 700;
  justify-content: center;
  min-height: 2.75rem;
  min-width: 2.75rem;
  padding: 0.55rem 0.75rem;
  text-decoration: none;
  transition: background-color 160ms cubic-bezier(0.23, 1, 0.32, 1), border-color 160ms cubic-bezier(0.23, 1, 0.32, 1), color 160ms cubic-bezier(0.23, 1, 0.32, 1);
}

.tb-pagination__ellipsis {
  align-items: center;
  color: var(--tb-color-muted, #596579);
  display: inline-flex;
  min-height: 2.75rem;
  padding-inline: 0.25rem;
}

.tb-pagination__button[aria-current="page"] {
  background: var(--tb-color-navy, #13274b);
  color: #fff;
}

.tb-pagination__button:disabled,
.tb-pagination__button[aria-disabled="true"] {
  cursor: not-allowed;
  opacity: 0.48;
}

.tb-pagination__button:focus-visible {
  outline: 3px solid var(--tb-color-active, #4f8fcc);
  outline-offset: 3px;
}

@media (hover: hover) {
  .tb-result-card:hover {
    border-color: #aebbd0;
    box-shadow: 0 0.75rem 1.75rem rgb(19 39 75 / 10%);
  }

  .tb-result-card__body h2 a:hover {
    color: var(--tb-color-coral-text, #c63f36);
  }

  .tb-pagination__button:is(a, button):hover:not(:disabled) {
    border-color: var(--tb-color-navy, #13274b);
  }
}

.tb-back-link {
  align-items: center;
  color: var(--tb-color-navy, #13274b);
  display: inline-flex;
  font-weight: 700;
  margin-bottom: 1rem;
  min-height: 2.75rem;
}

.tb-offer {
  align-items: start;
  background: #fff;
  border: 1px solid #d9dee7;
  border-radius: 0.875rem;
  box-shadow: 0 0.5rem 1.5rem rgb(19 39 75 / 6%);
  display: grid;
  grid-template-columns: minmax(18rem, 23rem) minmax(18rem, 1fr) minmax(14rem, 16rem);
  overflow: hidden;
}

.tb-offer--without-image {
  grid-template-columns: minmax(18rem, 1fr) minmax(14rem, 16rem);
}

.tb-offer__image {
  aspect-ratio: 4 / 3;
  display: block;
  height: 100%;
  max-height: 27rem;
  min-height: 20rem;
  object-fit: cover;
  width: 100%;
}

.tb-offer__media {
  align-self: stretch;
  margin: 0;
  min-height: 20rem;
}

.tb-offer__content,
.tb-offer__price {
  padding: clamp(1.25rem, 3vw, 2rem);
}

.tb-offer__inquiry {
  display: inline-flex;
  justify-content: center;
  width: 100%;
}

.tb-offer__inquiry-note {
  color: var(--tb-color-muted, #5d6879);
  display: block;
  line-height: 1.45;
  margin-top: 0.6rem;
}

.tb-offer__inquiry[hidden],
.tb-offer__inquiry-note[hidden],
.tb-package-variants__summary[hidden] {
  display: none;
}

.tb-offer__price {
  align-content: start;
  background: #f6f8fb;
  border-left: 1px solid var(--tb-color-border-subtle, #d9dee7);
  display: grid;
  gap: 1rem;
  min-width: 0;
}

.tb-offer__title-row {
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.75rem;
}

.tb-offer__content h1 {
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  line-height: 1.08;
  margin: 0;
  overflow-wrap: anywhere;
}

.tb-offer__rating {
  color: var(--tb-color-coral-text, #c63f36);
  flex: 0 0 auto;
  font-size: 1rem;
  letter-spacing: 0.08em;
}

.tb-offer__content > p:last-child {
  line-height: 1.6;
  margin-bottom: 0;
}

.tb-offer-summary {
  color: var(--tb-color-text, #26354b);
  line-height: 1.65;
  margin: 1.25rem 0 0;
  max-width: 72ch;
}

.tb-offer-summary p {
  margin: 0;
}

.tb-offer__dates {
  font-weight: 700;
}

.tb-offer__price-summary > p:not(.tb-offer__price-fallback) {
  color: var(--tb-color-navy, #13274b);
  font-size: 1.6rem;
  font-weight: 800;
  margin: 0.2rem 0 0;
  overflow-wrap: anywhere;
}

.tb-offer__checks {
  border-block: 1px solid var(--tb-color-border-subtle, #d9dee7);
}

.tb-offer__checks > summary {
  align-items: center;
  color: var(--tb-color-navy, #13274b);
  cursor: pointer;
  display: flex;
  font-weight: 800;
  justify-content: space-between;
  list-style: none;
  min-height: 2.75rem;
  padding-block: 0.4rem;
}

.tb-offer__checks > summary::-webkit-details-marker {
  display: none;
}

.tb-offer__checks > summary::after {
  content: "+";
  font-size: 1.25rem;
  margin-left: 1rem;
}

.tb-offer__checks[open] > summary::after {
  content: "−";
}

.tb-offer__checks > summary:focus-visible {
  outline: 3px solid var(--tb-color-active, #4f8fcc);
  outline-offset: 3px;
}

.tb-offer-check {
  border-top: 1px solid var(--tb-color-border-subtle, #d9dee7);
  padding-block: 1rem;
}

.tb-offer-contract {
  background: #fff;
  border: 1px solid var(--tb-color-border-subtle, #d9dee7);
  border-radius: 0.875rem;
  margin-top: 1.5rem;
  padding: clamp(1.25rem, 3vw, 2rem);
}

.tb-offer-contract h2 {
  margin: 0;
}

.tb-offer-contract__list {
  margin: 1rem 0 0;
}

.tb-offer-contract__list > div {
  border-top: 1px solid var(--tb-color-border-subtle, #d9dee7);
  display: grid;
  gap: 0.5rem 1.5rem;
  grid-template-columns: minmax(10rem, 0.35fr) minmax(0, 1fr);
  padding-block: 1rem;
}

.tb-offer-contract__list dt {
  color: var(--tb-color-navy, #13274b);
  font-weight: 800;
}

.tb-offer-contract__list dd {
  color: #2f2f2f;
  margin: 0;
  min-width: 0;
  overflow-wrap: anywhere;
}

.tb-offer-contract__groups {
  display: grid;
  gap: 1rem 2rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.tb-offer-contract__component-groups {
  display: grid;
  gap: 0.5rem;
}

.tb-offer-contract__component-group {
  border: 1px solid var(--tb-color-border-subtle, #d9dee7);
  border-radius: 0.6rem;
  overflow: hidden;
}

.tb-offer-contract__component-group > summary {
  align-items: center;
  color: var(--tb-color-navy, #13274b);
  cursor: pointer;
  display: flex;
  font-weight: 800;
  gap: 0.75rem;
  justify-content: space-between;
  min-height: 2.75rem;
  padding: 0.65rem 0.8rem;
}

.tb-offer-contract__component-group > summary small {
  color: var(--tb-color-muted, #596579);
  flex: 0 0 auto;
  font-size: 0.75rem;
}

.tb-offer-contract__component-group[open] > summary {
  background: #f4f7fb;
  border-bottom: 1px solid var(--tb-color-border-subtle, #d9dee7);
}

.tb-offer-contract__groups ul,
.tb-offer-contract__terms {
  margin: 0.5rem 0 0;
  padding-left: 1.25rem;
}

.tb-offer-contract__components {
  display: grid;
  gap: 0.5rem;
  list-style: none;
  margin: 0;
  padding: 0.75rem 0.8rem !important;
}

.tb-offer-contract__components li {
  align-items: baseline;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
}

.tb-offer-contract__components li > strong {
  flex: 0 0 auto;
}

.tb-offer-contract__components li > strong small,
.tb-price-component__unit-price {
  color: var(--tb-color-muted, #596579);
  display: block;
  font-size: 0.72rem;
  font-weight: 700;
  margin-top: 0.15rem;
}

.tb-offer-contract__organizer {
  border-top: 1px solid var(--tb-color-border-subtle, #d9dee7);
  color: var(--tb-color-muted, #596579);
  font-size: 0.78rem;
  line-height: 1.5;
  margin: 0.25rem 0 0;
  padding-top: 0.75rem;
}

.tb-offer-contract__organizer span {
  color: var(--tb-color-navy, #13274b);
  font-weight: 750;
}

.tb-package-details {
  background: #fff;
  border: 1px solid #d9dee7;
  border-radius: 0.875rem;
  margin-top: 1.5rem;
  padding: clamp(1.25rem, 3vw, 2rem);
}

.tb-package-variants {
  background: #fff;
  border: 1px solid var(--tb-color-border-subtle, #d9dee7);
  border-radius: 0.875rem;
  margin-top: 1.5rem;
  padding: clamp(1.25rem, 3vw, 2rem);
}

.tb-package-variants__intro {
  align-items: end;
  display: grid;
  gap: 0.5rem 2rem;
  grid-template-columns: minmax(14rem, 0.7fr) minmax(18rem, 1.3fr);
}

.tb-package-variants__intro h2,
.tb-package-variants__intro p {
  margin: 0;
}

.tb-package-variants__intro p,
.tb-package-variants__status {
  color: var(--tb-color-muted, #596579);
  line-height: 1.5;
}

.tb-package-variants__form {
  border-top: 1px solid var(--tb-color-border-subtle, #d9dee7);
  margin-top: 1.5rem;
  padding-top: 1.5rem;
}

.tb-package-variants .tb-field > label {
  color: var(--tb-color-navy, #13274b);
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.25;
}

.tb-package-variants__hint {
  color: var(--tb-color-muted, #596579);
  font-size: 0.75rem;
  line-height: 1.4;
}

.tb-package-months,
.tb-package-departures {
  margin-top: 1.25rem;
}

.tb-package-months h3,
.tb-package-departures h3 {
  color: var(--tb-color-navy, #13274b);
  font-size: 1rem;
  margin: 0 0 0.75rem;
}

.tb-package-months__years {
  display: grid;
  gap: 0.65rem;
}

.tb-package-months__year {
  align-items: start;
  display: grid;
  gap: 0.75rem;
  grid-template-columns: 3.75rem minmax(0, 1fr);
  min-width: 0;
}

.tb-package-months__year > strong {
  color: var(--tb-color-navy, #13274b);
  display: block;
  padding-top: 0.7rem;
}

.tb-package-months__list {
  display: grid;
  gap: 0.35rem;
  grid-template-columns: repeat(12, minmax(3rem, 1fr));
}

.tb-package-month {
  appearance: none;
  background: #f2f4f7;
  border: 1px solid var(--tb-color-border-subtle, #d9dee7);
  border-radius: 0.4rem;
  color: #737d8e;
  font: inherit;
  font-size: 0.82rem;
  font-weight: 700;
  min-height: 2.75rem;
  padding: 0.45rem 0.35rem;
  text-align: center;
}

.tb-package-month.is-available {
  background: #fff;
  border-color: var(--tb-color-navy, #13274b);
  color: var(--tb-color-navy, #13274b);
  cursor: pointer;
}

.tb-package-month.is-selected {
  background: var(--tb-color-navy, #13274b);
  border-color: var(--tb-color-navy, #13274b);
  color: #fff;
}

.tb-package-month:disabled {
  cursor: not-allowed;
  opacity: 0.72;
}

.tb-package-month.is-selected:disabled {
  cursor: default;
  opacity: 1;
}

.tb-package-month:focus-visible,
.tb-package-departure:focus-visible {
  outline: 3px solid var(--tb-color-coral, #f26458);
  outline-offset: 2px;
}

.tb-package-departures__list {
  display: grid;
  gap: 0.5rem;
}

.tb-package-departure {
  align-items: center;
  appearance: none;
  background: #fff;
  border: 1px solid var(--tb-color-border-subtle, #d9dee7);
  border-radius: 0.55rem;
  color: var(--tb-color-navy, #13274b);
  cursor: pointer;
  display: grid;
  font: inherit;
  gap: 0.4rem 1rem;
  grid-template-columns: minmax(11rem, 0.9fr) minmax(12rem, 1.4fr) max-content;
  min-height: 4rem;
  padding: 0.85rem 1rem;
  text-align: left;
  transition: background-color 180ms cubic-bezier(0.23, 1, 0.32, 1), border-color 180ms cubic-bezier(0.23, 1, 0.32, 1), transform 140ms cubic-bezier(0.23, 1, 0.32, 1);
  width: 100%;
}

.tb-package-departure > strong {
  font-size: 1rem;
  overflow-wrap: anywhere;
}

.tb-package-departure > span {
  color: var(--tb-color-muted, #596579);
  min-width: 0;
  overflow-wrap: anywhere;
}

.tb-package-departure > span:last-child {
  color: var(--tb-color-navy, #13274b);
  font-weight: 800;
  text-align: right;
}

.tb-package-departure.is-selected {
  background: var(--tb-color-info-surface, #f1f6fb);
  border-color: var(--tb-color-navy, #13274b);
}

.tb-package-departure:disabled {
  cursor: default;
  opacity: 1;
}

.tb-package-departures__empty {
  color: var(--tb-color-muted, #596579);
  margin: 0;
}

@media (hover: hover) and (pointer: fine) {
  .tb-package-month.is-available:not(:disabled):hover,
  .tb-package-departure:not(:disabled):hover {
    border-color: var(--tb-color-coral, #f26458);
  }
}

.tb-package-departure:not(:disabled):active {
  transform: scale(0.99);
}

.tb-package-variants__selection {
  align-items: start;
  border: 0;
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(2, minmax(8rem, 0.55fr));
  margin: 1.25rem 0 0;
  min-width: 0;
  padding: 0;
}

.tb-package-variants__selection > .tb-field,
.tb-cruise-configurator__grid > .tb-field {
  align-content: start;
  grid-auto-rows: max-content;
}

.tb-passenger-policy {
  align-items: start;
  background: var(--tb-color-info-surface, #f1f6fb);
  border: 1px solid var(--tb-color-border-subtle, #d9dee7);
  border-radius: 0.55rem;
  display: grid;
  gap: 0.35rem;
  margin-top: 1rem;
  padding: 0.75rem 0.875rem;
}

.tb-passenger-policy p {
  color: var(--tb-color-muted, #596579);
  line-height: 1.45;
  margin: 0;
}

.tb-passenger-policy a {
  color: var(--tb-color-navy, #13274b);
  font-weight: 800;
  justify-self: start;
  min-height: 44px;
  padding-block: 0.65rem;
}

.tb-package-variants__variant-field {
  grid-column: 1 / -1;
}

.tb-package-variants__skeleton {
  display: grid;
  gap: 0.75rem;
  margin-top: 1.25rem;
  max-width: 42rem;
}

.tb-package-variants__skeleton[hidden] {
  display: none;
}

[data-search-loading] {
  grid-column: 1 / -1;
  width: 100%;
}

.tb-results--pending .tb-result-card {
  position: relative;
  overflow: hidden;
}

.tb-results--pending .tb-result-card > * {
  visibility: hidden;
}

.tb-results--pending .tb-result-card::after {
  content: '';
  position: absolute;
  inset: 1rem;
  border-radius: 0.5rem;
  background: linear-gradient(100deg, #e9edf1 25%, #f5f7f9 45%, #e9edf1 65%);
  background-size: 200% 100%;
}

.tb-package-variants__summary {
  background: var(--tb-color-info-surface, #f1f6fb);
  border: 1px solid var(--tb-color-border-subtle, #d9dee7);
  border-radius: 0.55rem;
  margin-top: 1.25rem;
  padding: 1rem;
}

.tb-package-variants.is-stale .tb-package-variants__summary {
  opacity: 0.55;
  transition: opacity 180ms cubic-bezier(0.23, 1, 0.32, 1);
}

.tb-package-variants.is-stale .tb-package-variants__summary a {
  pointer-events: none;
}

.tb-package-variants__summary dl {
  display: grid;
  gap: 0;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0 0 1rem;
}

.tb-package-variants__summary dl > div {
  border-bottom: 1px solid var(--tb-color-border-subtle, #d9dee7);
  min-width: 0;
  padding: 0.65rem 1rem 0.65rem 0;
}

.tb-package-variants__summary dt {
  color: var(--tb-color-muted, #596579);
  font-size: 0.8rem;
  font-weight: 700;
}

.tb-package-variants__summary dd {
  color: var(--tb-color-navy, #13274b);
  font-weight: 800;
  margin: 0.2rem 0 0;
  overflow-wrap: anywhere;
}

.tb-package-variants__summary .tb-button {
  width: fit-content;
}

.tb-package-variants__status {
  margin: 0;
  min-height: 1.5em;
}

.tb-package-variants__feedback {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  margin-top: 1rem;
}

.tb-package-variants__feedback .tb-button {
  min-height: 2.75rem;
}

.tb-package-variants[aria-busy="true"] .tb-package-variants__status {
  color: var(--tb-color-navy, #13274b);
  font-weight: 700;
}

.tb-customer-draft {
  background: #fff;
  border: 1px solid #d9dee7;
  margin-top: 1.5rem;
  padding: clamp(1.25rem, 3vw, 2rem);
}

.tb-customer-draft[hidden] {
  display: none;
}

.tb-customer-draft__intro {
  align-items: end;
  display: grid;
  gap: 1rem 2rem;
  grid-template-columns: minmax(16rem, 0.8fr) minmax(18rem, 1.2fr);
}

.tb-customer-draft__intro h2,
.tb-customer-draft__intro p {
  margin: 0;
}

.tb-customer-draft__intro > p {
  color: var(--tb-color-muted, #596579);
}

.tb-customer-draft__boundary {
  margin-top: 1.5rem;
}

.tb-customer-draft__boundary p {
  margin-bottom: 0;
}

.tb-customer-draft__form {
  border-top: 1px solid #d9dee7;
  margin-top: 1.5rem;
  padding-top: 1.5rem;
}

.tb-customer-draft__fieldset {
  border: 0;
  margin: 0;
  min-width: 0;
  padding: 0;
}

.tb-customer-draft__grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.tb-customer-draft__field--wide {
  grid-column: 1 / -1;
}

.tb-customer-draft textarea {
  background: #fff;
  border: 1px solid var(--tb-color-border, #c8d0dc);
  border-radius: 0.2rem;
  box-sizing: border-box;
  color: #2f2f2f;
  font: inherit;
  min-height: 8rem;
  min-width: 0;
  padding: 0.65rem 0.75rem;
  resize: vertical;
  width: 100%;
}

.tb-customer-draft__consents {
  border-top: 1px solid #d9dee7;
  display: grid;
  gap: 1rem;
  margin-top: 1.5rem;
  padding-top: 1.5rem;
}

.tb-customer-draft__passengers {
  border-top: 1px solid #d9dee7;
  margin-top: 1.5rem;
  padding-top: 1.5rem;
}

.tb-customer-draft__passengers > h3 {
  color: var(--tb-color-navy, #13274b);
  margin: 0 0 1rem;
}

.tb-customer-draft__passenger-list {
  display: grid;
  gap: 1rem;
}

.tb-customer-draft__passenger {
  border: 1px solid #d9dee7;
  margin: 0;
  min-width: 0;
  padding: 1rem;
}

.tb-customer-draft__passenger > legend {
  color: var(--tb-color-navy, #13274b);
  font-weight: 800;
  padding-inline: 0.35rem;
}

.tb-customer-draft__passenger-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: minmax(6rem, 0.65fr) repeat(3, minmax(10rem, 1fr));
}

.tb-customer-draft__consent {
  align-items: flex-start;
  color: #2f2f2f;
  display: flex;
  font-size: 0.95rem;
  gap: 0.7rem;
}

.tb-customer-draft__consent input {
  flex: 0 0 auto;
  height: 1.2rem;
  margin-top: 0.2rem;
  width: 1.2rem;
}

.tb-customer-draft__consent a {
  overflow-wrap: anywhere;
}

.tb-customer-draft__errors {
  margin-top: 1.5rem;
}

.tb-customer-draft__errors[hidden] {
  display: none;
}

.tb-customer-draft__errors ul {
  margin-bottom: 0;
}

.tb-customer-draft__form > .tb-button {
  margin-top: 1.5rem;
}

.tb-customer-draft__status {
  color: var(--tb-color-muted, #596579);
  font-weight: 700;
  margin: 1rem 0 0;
  min-height: 1.5em;
}

.tb-customer-draft[data-draft-state="validated"] .tb-customer-draft__status {
  color: var(--tb-color-navy, #13274b);
}

.tb-package-details__intro h2 {
  margin: 0;
}

.tb-package-gallery {
  border-top: 1px solid #d9dee7;
  margin-top: 1.5rem;
  padding-top: 1.5rem;
}

.tb-package-gallery h3 {
  color: var(--tb-color-navy, #13274b);
  margin: 0 0 1rem;
}

.tb-package-gallery__grid {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.tb-package-gallery__grid figure {
  aspect-ratio: 4 / 3;
  border-radius: 0.5rem;
  margin: 0;
  min-width: 0;
}

.tb-package-gallery__grid img {
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.tb-package-gallery__more {
  border-top: 1px solid #d9dee7;
  margin-top: 1rem;
  padding-top: 0.5rem;
}

.tb-package-gallery__more summary {
  align-items: center;
  color: var(--tb-color-navy, #13274b);
  cursor: pointer;
  display: inline-flex;
  font-weight: 800;
  min-height: 2.75rem;
}

.tb-package-gallery__more[open] summary {
  margin-bottom: 0.75rem;
}

.tb-package-details__facts {
  display: grid;
  gap: 0 1.5rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 1.5rem 0 0;
}

.tb-package-details__facts > div {
  border-top: 1px solid #d9dee7;
  min-width: 0;
  padding-block: 0.8rem;
}

.tb-package-details__facts dt {
  color: #596579;
  font-size: 0.85rem;
  font-weight: 700;
}

.tb-package-details__facts dd {
  color: var(--tb-color-navy, #13274b);
  font-weight: 800;
  margin: 0.2rem 0 0;
  overflow-wrap: anywhere;
}

.tb-package-details__tags {
  border-top: 1px solid #d9dee7;
  margin: 0;
  padding-top: 1rem;
}

.tb-package-attributes {
  border-top: 1px solid #d9dee7;
  margin-top: 1.25rem;
  padding-top: 1rem;
}

.tb-package-attributes > summary {
  align-items: center;
  color: var(--tb-color-navy, #13274b);
  cursor: pointer;
  display: inline-flex;
  font-weight: 800;
  min-height: 2.75rem;
}

.tb-package-attributes__groups {
  display: grid;
  gap: 1.25rem 2rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 1rem;
}

.tb-package-attributes__groups section {
  min-width: 0;
}

.tb-package-attributes__groups h3 {
  color: var(--tb-color-navy, #13274b);
  font-size: 1rem;
  margin: 0 0 0.55rem;
}

.tb-package-attributes__groups ul {
  display: grid;
  gap: 0.35rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.tb-package-attributes__groups li {
  color: var(--tb-color-text, #2f2f2f);
  line-height: 1.45;
  padding-left: 1rem;
  position: relative;
}

.tb-package-attributes__groups li::before {
  background: var(--tb-color-coral, #f26458);
  border-radius: 50%;
  content: "";
  height: 0.32rem;
  left: 0;
  position: absolute;
  top: 0.55rem;
  width: 0.32rem;
}

.tb-package-details__prices {
  border-block: 1px solid #d9dee7;
  margin-top: 1.5rem;
  padding-block: 1rem;
}

.tb-package-details__prices summary {
  align-items: center;
  color: var(--tb-color-navy, #13274b);
  cursor: pointer;
  display: inline-flex;
  font-weight: 800;
  min-height: 44px;
  padding-block: 0.5rem;
  width: fit-content;
}

.tb-package-details__prices ul {
  display: grid;
  gap: 0.45rem;
  list-style: none;
  margin: 1rem 0 0;
  max-width: 48rem;
  padding: 0;
}

.tb-package-details__prices li {
  align-items: baseline;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
}

.tb-package-details__prices strong {
  flex: 0 0 auto;
}

.tb-package-details__section {
  border-top: 1px solid #d9dee7;
  line-height: 1.65;
  margin-top: 0.75rem;
  padding-top: 0.75rem;
}

.tb-package-details__section > summary {
  align-items: center;
  color: var(--tb-color-navy, #13274b);
  cursor: pointer;
  display: flex;
  font-weight: 800;
  min-height: 2.75rem;
}

.tb-package-details__section[open] > summary {
  margin-bottom: 1rem;
}

.tb-package-details__rich-text > :first-child {
  margin-top: 0;
}

.tb-package-details__rich-text > :last-child {
  margin-bottom: 0;
}

.tb-package-details__rich-text table {
  border-collapse: collapse;
  display: block;
  max-width: 100%;
  overflow-x: auto;
  width: max-content;
}

.tb-package-details__rich-text th,
.tb-package-details__rich-text td {
  border: 1px solid #d9dee7;
  padding: 0.55rem 0.7rem;
  text-align: left;
}

.tb-cruise-configurator {
  background: #fff;
  border: 1px solid #d9dee7;
  border-radius: 0.875rem;
  margin-top: 1.5rem;
  padding: clamp(1.25rem, 3vw, 2rem);
}

.tb-cruise-configurator__intro {
  align-items: end;
  display: grid;
  gap: 1rem 2rem;
  grid-template-columns: minmax(16rem, 0.8fr) minmax(18rem, 1.2fr);
}

.tb-cruise-configurator__intro h2,
.tb-cruise-variants__title {
  margin: 0;
}

.tb-cruise-configurator__intro > p {
  color: #596579;
  margin: 0;
}

.tb-cruise-configurator__form {
  border-block: 1px solid #d9dee7;
  margin-top: 1.5rem;
  padding-block: 1.5rem;
}

.tb-cruise-configurator__fieldset {
  border: 0;
  margin: 0;
  padding: 0;
}

.tb-cruise-configurator__grid,
.tb-cruise-configurator__ages {
  align-items: start;
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.tb-cruise-configurator__ages:not(:empty) {
  margin-top: 1rem;
}

.tb-cruise-configurator__hint {
  color: var(--tb-color-muted, #596579);
  font-size: 0.75rem;
  line-height: 1.4;
}

.tb-cruise-configurator__form > .tb-button {
  margin-top: 1.25rem;
  min-width: min(100%, 16rem);
}

.tb-cruise-configurator__status {
  color: #596579;
  font-weight: 700;
  margin: 0;
  min-height: 1.5em;
}

.tb-cruise-configurator__feedback {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  margin: 1rem 0;
}

.tb-cruise-configurator__feedback .tb-button {
  min-height: 2.75rem;
}

.tb-cruise-configurator.has-error .tb-cruise-configurator__status {
  color: #a22d25;
}

.tb-cruise-variants__list {
  border: 1px solid #d9dee7;
  border-radius: 0.75rem;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  margin-top: 0.75rem;
  overflow: hidden;
}

.tb-cruise-variants {
  min-height: 4rem;
  opacity: 1;
  transition: opacity 180ms cubic-bezier(0.23, 1, 0.32, 1);
}

.tb-cruise-configurator.is-loading .tb-cruise-variants,
.tb-cruise-configurator.is-stale .tb-cruise-variants {
  opacity: 0.55;
}

.tb-cruise-configurator.is-stale .tb-cruise-variants :is(a, button) {
  pointer-events: none;
}

.tb-cruise-variant {
  align-items: stretch;
  border-bottom: 1px solid #d9dee7;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(13rem, 18rem);
  min-width: 0;
}

.tb-cruise-variant:last-child {
  border-bottom: 0;
}

.tb-cruise-variant[hidden] {
  display: none;
}

.tb-cruise-variant__body {
  min-width: 0;
  overflow-wrap: anywhere;
  padding: 1.25rem;
}

.tb-cruise-variant__body h4,
.tb-cruise-variant__dates {
  margin: 0;
}

.tb-cruise-variant__dates {
  color: #596579;
  margin-top: 0.35rem;
}

.tb-cruise-variant__breakdown {
  margin-top: 0.75rem;
}

.tb-cruise-variant__breakdown summary {
  align-items: center;
  color: var(--tb-color-navy, #13274b);
  cursor: pointer;
  display: inline-flex;
  font-weight: 700;
  min-height: 44px;
  padding-block: 0.5rem;
  width: fit-content;
}

.tb-cruise-variant__breakdown ul {
  display: grid;
  gap: 0.35rem;
  list-style: none;
  margin: 0.65rem 0 0;
  padding: 0;
}

.tb-cruise-variant__breakdown li {
  align-items: baseline;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
}

.tb-cruise-variant__breakdown strong {
  flex: 0 0 auto;
}

.tb-price-component__role {
  color: var(--tb-color-muted, #596579);
  display: block;
  font-size: 0.8rem;
  font-weight: 700;
  margin-top: 0.15rem;
}

.tb-cruise-variant__price {
  color: var(--tb-color-navy, #13274b);
  font-size: 1.35rem;
  font-weight: 900;
  margin: 0;
}

.tb-cruise-variant__summary {
  align-content: start;
  background: #f6f8fb;
  border-left: 1px solid #d9dee7;
  display: grid;
  gap: 0.4rem;
  min-width: 0;
  padding: 1.25rem;
}

.tb-cruise-variant__price-label {
  color: var(--tb-color-muted, #596579);
  font-size: 0.8rem;
  font-weight: 700;
  line-height: 1.3;
}

.tb-cruise-variant__availability {
  color: var(--tb-color-muted, #596579);
  font-size: 0.78rem;
  line-height: 1.4;
}

.tb-cruise-variant__inquiry {
  display: inline-flex;
  justify-content: center;
  margin-top: 0.6rem;
  max-width: 100%;
  text-align: center;
  width: 100%;
}

.tb-cruise-variants__toggle {
  margin-top: 1rem;
}

.tb-cruise-configurator__notice {
  margin-top: 1.5rem;
}

.tb-cruise-configurator__notice p {
  margin-bottom: 0;
}

.tb-cruise-details {
  border-top: 1px solid #d9dee7;
  margin-top: 1.75rem;
  padding-top: 1.75rem;
}

.tb-cruise-details > h2 {
  margin: 0 0 1rem;
}

.tb-cruise-details__tab-list {
  display: flex;
  gap: 0.25rem;
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
}

.tb-cruise-details__tab {
  background: #e9edf3;
  border: 0;
  border-radius: 0.2rem 0.2rem 0 0;
  color: var(--tb-color-navy, #13274b);
  cursor: pointer;
  flex: 1 0 auto;
  font: inherit;
  font-weight: 800;
  min-height: 3rem;
  padding: 0.7rem 1rem;
  white-space: nowrap;
}

.tb-cruise-details__tab[aria-selected="true"] {
  background: var(--tb-color-navy, #13274b);
  color: #fff;
}

.tb-cruise-details__panel {
  border: 1px solid #d9dee7;
  line-height: 1.65;
  min-width: 0;
  padding: clamp(1rem, 3vw, 2rem);
}

.tb-cruise-details__panel p,
.tb-cruise-details__panel li,
.tb-cruise-details__panel dd,
.tb-cruise-details__panel a {
  overflow-wrap: anywhere;
}

.tb-cruise-details__panel > :first-child,
.tb-cruise-cabin > :first-child {
  margin-top: 0;
}

.tb-cruise-details__panel > :last-child,
.tb-cruise-cabin > :last-child {
  margin-bottom: 0;
}

.tb-cruise-details__panel blockquote {
  background: var(--tb-color-info-surface, #f1f6fb);
  border: 1px solid var(--tb-color-active, #4f8fcc);
  margin-inline: 0;
  padding: 1rem;
}

.tb-cruise-details__panel table {
  border-collapse: collapse;
  display: block;
  max-width: 100%;
  overflow-x: auto;
  width: max-content;
}

.tb-cruise-details__panel th,
.tb-cruise-details__panel td {
  border: 1px solid #d9dee7;
  padding: 0.55rem 0.7rem;
  text-align: left;
}

.tb-cruise-details__gallery {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-block: 1rem;
}

.tb-cruise-details__media {
  aspect-ratio: 4 / 3;
  margin: 0;
  min-width: 0;
}

.tb-cruise-details__media[hidden] {
  display: none;
}

.tb-cruise-details__gallery--featured .tb-cruise-details__media:first-child {
  grid-column: span 2;
  grid-row: span 2;
}

.tb-cruise-details__gallery img {
  aspect-ratio: 4 / 3;
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.tb-cruise-details__gallery-toggle {
  margin-bottom: 1rem;
}

.tb-cruise-cabins {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 1rem;
}

.tb-cruise-cabin {
  border: 1px solid #d9dee7;
  border-radius: 0.55rem;
  min-width: 0;
  overflow-wrap: anywhere;
}

.tb-cruise-cabin > summary,
.tb-cruise-details__disclosure > summary {
  color: var(--tb-color-navy, #13274b);
  cursor: pointer;
  font-weight: 800;
  min-height: 44px;
  padding: 0.8rem 1rem;
}

.tb-cruise-cabin__content,
.tb-cruise-details__disclosure-content {
  border-top: 1px solid #d9dee7;
  padding: 1rem;
}

.tb-cruise-cabin h3 {
  color: var(--tb-color-navy, #13274b);
}

.tb-cruise-details__panel--company .tb-cruise-details__gallery {
  grid-template-columns: minmax(8rem, 18rem);
}

.tb-cruise-details__panel--company .tb-cruise-details__gallery img {
  aspect-ratio: auto;
  max-height: 10rem;
  object-fit: contain;
}

.tb-cruise-details__panel--company .tb-cruise-details__media {
  aspect-ratio: 3 / 1;
}

@media (max-width: 1279px) and (min-width: 961px) {
  .tb-results-content .tb-result-card {
    grid-template-columns: minmax(14rem, 18rem) minmax(15rem, 1fr);
  }

  .tb-results-content .tb-result-card--without-image {
    grid-template-columns: 1fr;
  }

  .tb-results-content .tb-result-card__action {
    align-items: center;
    border-left: 0;
    border-top: 1px solid var(--tb-color-border-subtle, #d9dee7);
    grid-column: 1 / -1;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .tb-results-content .tb-result-card__actions {
    grid-column: 1 / -1;
  }
}

@media (max-width: 960px) {
  body.tb-filter-panel-open {
    overflow: hidden;
  }

  .tb-results-layout {
    display: block;
  }

  .tb-results-filter {
    inset: 0;
    pointer-events: none;
    position: fixed;
    transition: visibility 0s linear 180ms;
    visibility: hidden;
    z-index: 100000;
  }

  .tb-results-filter[data-open="true"] {
    pointer-events: auto;
    transition-delay: 0s;
    visibility: visible;
  }

  .tb-results-filter__backdrop {
    background: rgb(0 18 54 / 62%);
    border: 0;
    display: block;
    inset: 0;
    opacity: 0;
    padding: 0;
    position: absolute;
    transition: opacity 180ms cubic-bezier(0.23, 1, 0.32, 1);
    width: 100%;
  }

  .tb-results-filter[data-open="true"] .tb-results-filter__backdrop {
    opacity: 1;
  }

  .tb-results-filter__surface {
    border: 0;
    border-radius: 0;
    height: 100%;
    margin-left: auto;
    max-height: none;
    max-width: 30rem;
    overflow-y: auto;
    position: relative;
    top: auto;
    transform: translateX(100%);
    transition: transform 220ms cubic-bezier(0.32, 0.72, 0, 1);
    width: 100%;
  }

  .tb-results-filter[data-open="true"] .tb-results-filter__surface {
    transform: translateX(0);
  }

  .tb-results-filter[data-instant="true"] .tb-results-filter__backdrop,
  .tb-results-filter[data-instant="true"] .tb-results-filter__surface {
    transition-duration: 0.01ms;
  }

  .tb-results-filter[data-instant="true"] {
    transition-delay: 0s;
  }

  .tb-results-filter__header {
    padding-top: max(0.75rem, env(safe-area-inset-top));
  }

  .tb-results-filter__close {
    display: inline-flex;
  }

  .tb-results-filter__body {
    padding-bottom: max(1.25rem, env(safe-area-inset-bottom));
  }

  .tb-results-filter .tb-search-submit {
    bottom: max(0.75rem, env(safe-area-inset-bottom));
  }

  .tb-results-toolbar {
    align-items: center;
  }

  .tb-filter-trigger {
    display: inline-flex;
  }

  .tb-search-grid--package {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  .tb-search-grid--package > .tb-field--search-type,
  .tb-search-grid--package > .tb-field--duration,
  .tb-search-grid--package > .tb-field--adults,
  .tb-search-grid--package > .tb-field--children {
    grid-column: span 2;
  }

  .tb-search-grid--package > .tb-field--destination {
    grid-column: span 4;
  }

  .tb-search-grid--package > .tb-field--category,
  .tb-search-grid--package > .tb-field--travel-mode,
  .tb-search-grid--package > .tb-field--start-place,
  .tb-search-grid--package > .tb-field--accommodation-name {
    grid-column: span 3;
  }

  .tb-search-grid--package > .tb-fieldset--dates {
    grid-column: 1 / -1;
  }

  .tb-search-grid--package-primary,
  .tb-search-grid--cruise-primary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .tb-search-grid--package-primary > .tb-field,
  .tb-search-grid--package-primary > .tb-fieldset {
    grid-column: auto;
  }

  .tb-search-grid--cruise,
  .tb-advanced-filters__grid,
  .tb-cruise-options {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .tb-cruise-options > .tb-field--ports {
    grid-column: 1 / -1;
  }

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

  .tb-result-card {
    grid-template-columns: minmax(11rem, 14rem) minmax(16rem, 1fr);
  }

  .tb-result-card--without-image {
    grid-template-columns: 1fr;
  }

  .tb-result-card__action {
    align-items: center;
    border-left: 0;
    border-top: 1px solid var(--tb-color-border-subtle, #d9dee7);
    grid-column: 1 / -1;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .tb-result-card__actions {
    grid-column: 1 / -1;
  }

  .tb-offer {
    grid-template-columns: minmax(14rem, 0.8fr) minmax(20rem, 1.2fr);
  }

  .tb-offer--without-image {
    grid-template-columns: minmax(18rem, 1.2fr) minmax(14rem, 0.8fr);
  }

  .tb-offer__price {
    border-left: 0;
    border-top: 1px solid var(--tb-color-border-subtle, #d9dee7);
    grid-column: 1 / -1;
  }

  .tb-cruise-configurator__grid,
  .tb-cruise-configurator__ages {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .tb-cruise-details__gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .tb-package-gallery__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .tb-package-details__facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .tb-customer-draft__passenger-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 641px) and (max-width: 960px) {
  .tb-results-content .tb-result-card {
    grid-template-columns: minmax(13rem, 15rem) minmax(0, 1fr);
  }

  .tb-results-content .tb-result-card--without-image {
    grid-template-columns: 1fr;
  }

  .tb-results-content .tb-result-card__image-link {
    aspect-ratio: 4 / 3;
    min-height: 100%;
  }

  .tb-results-content .tb-result-card__action {
    align-items: center;
    border-left: 0;
    border-top: 1px solid var(--tb-color-border-subtle, #d9dee7);
    grid-column: 1 / -1;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .tb-results-content .tb-result-card__actions {
    grid-column: 1 / -1;
  }
}

@media (max-width: 640px) {
  .tb-booking-page {
    padding: 2.5rem 0.75rem 4rem;
  }

  .tb-unified-search-page {
    padding-top: 2rem;
  }

  .tb-unified-search-form {
    grid-template-columns: 2.5rem minmax(0, 1fr) auto;
  }

  .tb-unified-search-form input {
    font-size: 1rem;
  }

  .tb-unified-search-form button {
    padding-inline: 0.9rem;
  }

  .tb-unified-search-tabs {
    margin-inline: -0.25rem;
  }

  .tb-booking-shell > h1 {
    font-size: 1.875rem;
    margin-bottom: 1.25rem;
  }

  .tb-search-form {
    grid-template-columns: 1fr;
    padding: 1rem;
  }

  .tb-search-form > .tb-provider-status,
  .tb-search-form > .tb-search-submit {
    grid-column: 1;
  }

  .tb-search-form > .tb-search-submit {
    justify-self: stretch;
    width: 100%;
  }

  .tb-search-grid--package,
  .tb-search-grid--cruise,
  .tb-advanced-filters__grid,
  .tb-cruise-options,
  .tb-choice-group--labels,
  .tb-check-grid {
    grid-template-columns: 1fr;
  }

  .tb-search-grid--package > .tb-field,
  .tb-search-grid--package > .tb-fieldset,
  .tb-cruise-options > .tb-field--ports {
    grid-column: 1 / -1;
  }

  .tb-choice-group--labels legend {
    grid-column: auto;
  }

  .tb-fieldset--dates {
    grid-template-columns: 1fr;
  }

  .tb-search-grid--package > .tb-fieldset--dates {
    grid-column: auto;
  }

  .tb-results-header {
    align-items: stretch;
    flex-direction: column;
  }

  .tb-results-context__related {
    grid-template-columns: 1fr;
  }

  .tb-results-context__related > span {
    padding-top: 0;
  }

  .tb-results-context__links {
    display: flex;
    flex-wrap: wrap;
    overflow: visible;
    padding: 0;
  }

  .tb-results-context__links a {
    flex: 0 1 auto;
    justify-content: center;
    max-width: 100%;
    text-align: center;
  }

  .tb-results-toolbar {
    align-items: center;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
  }

  .tb-results-toolbar .tb-result-count {
    text-align: right;
  }

  .tb-results-sort {
    align-items: stretch;
    display: grid;
    gap: 0.35rem;
    grid-column: 1 / -1;
  }

  .tb-results-sort select {
    width: 100%;
  }

  .tb-active-filters__list {
    flex-wrap: wrap;
  }

  .tb-active-filter {
    max-width: 100%;
  }

  .tb-notice__actions {
    display: grid;
  }

  .tb-result-card {
    grid-template-columns: 1fr;
  }

  .tb-result-card__image-link {
    aspect-ratio: 4 / 3;
    height: auto;
    min-height: 0;
  }

  .tb-result-card__image {
    aspect-ratio: auto;
    max-height: none;
    min-height: 100%;
  }

  .tb-result-card__action {
    grid-column: auto;
    grid-template-columns: 1fr;
  }

  .tb-result-card__actions {
    grid-column: auto;
  }

  .tb-offer {
    grid-template-columns: 1fr;
  }

  .tb-offer__image {
    aspect-ratio: 16 / 9;
    min-height: 0;
  }

  .tb-offer__media {
    border-top: 1px solid var(--tb-color-border-subtle, #d9dee7);
    min-height: 0;
    order: 3;
  }

  .tb-offer__content { order: 1; }

  .tb-offer__price {
    grid-column: auto;
    order: 2;
  }

  .tb-cruise-configurator__intro,
  .tb-customer-draft__intro,
  .tb-package-variants__intro,
  .tb-cruise-configurator__grid,
  .tb-cruise-configurator__ages,
  .tb-cruise-variants__list {
    grid-template-columns: 1fr;
  }

  .tb-cruise-variant {
    align-items: start;
    grid-template-columns: 1fr;
  }

  .tb-cruise-variant__price {
    text-align: left;
  }

  .tb-cruise-variant__summary {
    border-left: 0;
    border-top: 1px solid #d9dee7;
  }

  .tb-cruise-details__tab-list {
    display: grid;
    gap: 0.35rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow: visible;
  }

  .tb-cruise-details__tab {
    min-width: 0;
    padding-inline: 0.5rem;
    white-space: normal;
  }

  .tb-cruise-cabins,
  .tb-cruise-details__gallery,
  .tb-package-details__facts,
  .tb-package-attributes__groups,
  .tb-package-variants__selection,
  .tb-package-variants__summary dl,
  .tb-offer-contract__groups,
  .tb-offer-contract__list > div {
    grid-template-columns: 1fr;
  }

  .tb-cruise-details__gallery--featured .tb-cruise-details__media:first-child {
    grid-column: auto;
    grid-row: auto;
  }

  .tb-package-details__prices li,
  .tb-offer-contract__components li,
  .tb-cruise-variant__breakdown li {
    align-items: start;
    flex-direction: column;
    gap: 0.15rem;
  }

  .tb-customer-draft__grid {
    grid-template-columns: 1fr;
  }

  .tb-customer-draft__passenger-grid {
    grid-template-columns: 1fr;
  }

  .tb-customer-draft__field--wide {
    grid-column: auto;
  }

  .tb-package-variants__summary .tb-button {
    width: 100%;
  }

  .tb-package-departure {
    align-items: start;
    grid-template-columns: 1fr;
  }

  .tb-package-departure > span:last-child {
    text-align: left;
  }

  .tb-package-months__year {
    grid-template-columns: 1fr;
  }

  .tb-package-months__year > strong {
    padding-top: 0;
  }

  .tb-package-months__list {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .tb-booking-tabs__tab {
    flex: 1 1 50%;
    min-width: 0;
    padding-inline: 0.75rem;
  }

  .tb-advanced-filters__content {
    padding-inline: 0.75rem;
  }

  .tb-pagination {
    align-items: stretch;
  }

  .tb-pagination--server {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .tb-pagination--server .tb-pagination__pages {
    grid-column: 1 / -1;
    grid-row: 1;
    justify-content: center;
  }

  .tb-pagination__button--direction {
    width: 100%;
  }

}

@media (hover: none), (pointer: coarse) {
  .tb-advanced-filters summary,
  .tb-subfilter > summary,
  .tb-package-details__prices summary,
  .tb-cruise-variant__breakdown summary,
  .tb-back-link,
  .tb-check-grid label,
  .tb-choice-row label,
  .tb-choice-group label {
    min-height: 2.8125rem;
  }

  .tb-customer-draft__consent {
    min-height: 2.8125rem;
  }

  .tb-back-link {
    align-items: center;
    display: inline-flex;
  }

  .tb-advanced-filters summary,
  .tb-subfilter > summary,
  .tb-package-details__prices summary,
  .tb-cruise-variant__breakdown summary {
    padding-block: 0.5rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .tb-skeleton::after,
  [data-travelbay-media][data-media-state="loading"]::before {
    animation: none;
    opacity: 0.35;
    transform: none;
  }

  [data-travelbay-media] > img,
  .tb-booking-tabs__tab,
  .tb-unified-search-form,
  .tb-unified-search-form button,
  .tb-unified-search-tabs a,
  .tb-search-form :is(input, select),
  .tb-advanced-filters summary,
  .tb-advanced-filters summary::after,
  .tb-results-filter,
  .tb-results-filter__backdrop,
  .tb-results-filter__surface,
  .tb-results-filter__reset,
  .tb-results-filter__close,
  .tb-filter-trigger,
  .tb-active-filter,
  .tb-results-context__links a,
  .tb-result-card,
  .tb-pagination__button,
  .tb-search-submit,
  .tb-package-month,
  .tb-package-departure,
  .tb-button {
    transition-duration: 0.01ms;
  }

  .tb-cruise-variants,
  .tb-package-variants__summary {
    transition: none;
  }

  .tb-booking-tabs__tab:active,
  .tb-results-filter__reset:active,
  .tb-results-filter__close:active,
  .tb-filter-trigger:active,
  .tb-active-filter:active,
  .tb-search-submit:active,
  .tb-package-departure:active,
  .tb-button:active {
    transform: none;
  }
}

@page {
  margin: 15mm;
}

@media print {
  .tb-site-header,
  .tb-site-footer,
  .tb-back-link,
  .tb-offer__price .tb-notice,
  .tb-offer__checks,
  .tb-offer__inquiry,
  .tb-offer__inquiry-note,
  .tb-package-variants,
  .tb-package-gallery,
  .tb-package-print,
  .tb-customer-draft {
    display: none !important;
  }

  .tb-booking-page {
    background: #fff;
    min-height: auto;
    padding: 0;
  }

  .tb-booking-shell {
    max-width: none;
  }

  .tb-offer,
  .tb-offer--without-image {
    border: 0;
    display: block;
  }

  .tb-offer__image {
    height: auto;
    max-height: 18rem;
    object-fit: contain;
  }

  .tb-offer__content,
  .tb-offer__price,
  .tb-offer-contract,
  .tb-package-details {
    padding: 0;
  }

  .tb-offer__price {
    margin-top: 1rem;
  }

  .tb-package-details {
    border: 0;
    break-before: auto;
    margin-top: 1.5rem;
  }

  .tb-offer-contract {
    border: 0;
    margin-top: 1.5rem;
  }

  .tb-package-details__section,
  .tb-package-details__prices,
  .tb-package-details__facts > div,
  .tb-offer-contract__list > div {
    break-inside: avoid;
  }

  .tb-print-note {
    display: block;
    font-weight: 700;
  }

  a {
    color: inherit;
    text-decoration: none;
  }
}
/* Keep variant headings visible below the fixed desktop and mobile navigation. */
#tb-package-variants,
#tb-cruise-configurator { scroll-margin-top: 9rem; }
