.trip-page {
  position: relative;
  padding: 2rem 1rem 5rem;
}

.trip-page__toolbar {
  position: sticky;
  inset-block-start: var(--site-header-height);
  z-index: var(--z-trip-toolbar);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.75rem;
  block-size: var(--site-header-height);
  margin-block-end: 0.75rem;
  padding-inline: 1rem;
  border-bottom: 1px solid;
}

.trip-page__toolbar-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
}

.trip-page__grid {
  display: grid;
  gap: 1.75rem;
  min-inline-size: 0;
}

.trip-page__card {
  display: flex;
  flex-direction: column;
  padding: 1.5rem;
  border: var(--border-width-1) solid;
}

.trip-page__card--hero,
.trip-page__card--full,
.trip-page__raw-data {
  grid-column: 1 / -1;
}

.trip-page__card h2 {
  margin: 0 0 0.75rem;
  border-bottom: 1px solid;
}

.trip-page__card-title {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  inline-size: 100%;
}

.trip-page__card-icon,
.trip-page__chat-close-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  padding: 0.35rem;
  inline-size: 1em;
  block-size: 1em;
  box-sizing: content-box;
}

.trip-hotel__header,
.trip-restaurant__header,
.trip-activity__header,
.trip-sight__header,
.trip-event__header {
  inline-size: 100%;
}

.trip-page__hero-top {
  padding-block-end: 0.75rem;
  margin-block-end: 0.75rem;
  border-bottom: 1px solid;
}

.trip-page__hero-title-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
}

.trip-page__hero-destination {
  display: flex;
  flex-direction: column;
  min-inline-size: 0;
}

.trip-page__hero-title-line {
  display: flex;
  align-items: start;
  gap: 1.6rem;
}

.trip-save-actions {
  display: flex;
  gap: 0.5rem;
}

.trip-save-actions__button {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: 0.4rem;
}

.trip-save-actions__icon {
  inline-size: 1.1em;
  block-size: 1.1em;
  max-inline-size: 1.1em;
  max-block-size: 1.1em;
  flex-shrink: 0;
}

.trip-page__estimate-note {
  text-align: center;
  padding-block-end: 0.75rem;
}

.trip-page__card-title {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  inline-size: 100%;
}

.trip-page__card-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  padding: 0.35rem;
  inline-size: 1em;
  block-size: 1em;
  box-sizing: content-box;
}

.trip-page__hero-media {
  display: flex;
  flex-direction: column;
  position: relative;
}

.trip-page__hero-media-frame {
  position: relative;
  inline-size: 100%;
  flex: 1;
  min-block-size: 0;
  overflow: hidden;
}

.trip-page__hero-media-credit {
  display: block;
  padding-block-start: 0.4rem;
  text-align: center;
}

.trip-page__hero-media-loading {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #eee;
}

.trip-page__hero-media-frame .trip-page__hero-media-loading {
  inset: 0;
}

.trip-page__hero-media-spinner {
  inline-size: 3rem;
  block-size: 3rem;
}

.trip-page__hero-media-img--loading {
  visibility: hidden;
}

.trip-flight__loading-spinner {
  inline-size: 2.5rem;
  block-size: 2.5rem;
}

.trip-flight__body {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  flex: 1 1 auto;
  min-block-size: 0;
}

.trip-flight__body--loading {
  align-items: center;
}

.trip-page__hero-country,
.trip-page__hero-subtitle,
.trip-page__hero-temp {
  padding-inline: 0.3em;
}

.trip-page__hero-subtitle {
  margin: 0.25rem 0 0;
}

.trip-page__hero-temp {
  display: inline-flex;
  align-items: center;
  gap: 0.3em;
  border: 1px solid;
}

.trip-page__hero-temp-icon {
  inline-size: 1.1em;
  block-size: 1.1em;
}

.trip-page__section-intro {
  margin: 0 0 0.75rem;
  padding-inline: 0.3em;
}

.typewriter-cursor {
  display: inline-block;
  inline-size: 0.55em;
  block-size: 1em;
  margin-inline-start: 0.1em;
  border-inline-end: 0.12em solid currentColor;
  vertical-align: text-bottom;
  animation: typewriter-blink 0.8s step-end infinite;
}

/* Unrevealed tail keeps its space so the layout never shifts while typing. */
.typewriter-pending {
  color: transparent;
  user-select: none;
}

@keyframes typewriter-blink {
  50% {
    opacity: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .typewriter-cursor {
    display: none;
  }
}

.trip-page__hero-price {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.2rem;
}

.trip-page__hero-price-label {
  white-space: nowrap;
}

.trip-page__hero-price-value {
  white-space: nowrap;
  font-size: 2em;
  font-weight: 800;
}

.trip-page__hero-main {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 1.25rem;
}

.trip-page__hero-details {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  min-inline-size: 0;
}

.trip-page__estimate-card {
  border: var(--border-width-1) solid;
  overflow: hidden;
}

.trip-page__estimate-dates {
  display: flex;
  align-items: stretch;
  border-bottom: var(--border-width-1) solid;
}

.trip-page__estimate-weather {
  display: flex;
  align-items: flex-start;
  flex-shrink: 0;
  padding: 0.55rem 0.75rem 0.55rem 0;
}

.trip-page__estimate-date {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  padding: 0.75rem 1rem;
  min-inline-size: 0;
}

.trip-page__estimate-date-divider {
  flex-shrink: 0;
  inline-size: 1px;
}

.trip-page__estimate-title {
  padding: 0.75rem 1rem;
  border-bottom: var(--border-width-1) solid;
}

.trip-page__estimate-rows {
  display: flex;
  flex-direction: column;
}

.trip-page__estimate-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: 0.65rem 1rem;
  border-bottom: var(--border-width-1) solid;
}

.trip-page__estimate-row:last-child {
  border-bottom: 0;
}

.trip-page__estimate-label {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  min-inline-size: 0;
}

.trip-page__estimate-value {
  display: flex;
  align-items: center;
  align-self: center;
  text-align: end;
  white-space: nowrap;
}

.trip-page__hero-media {
  inline-size: 100%;
}

.trip-page__hero-media-frame {
  block-size: 12rem;
}

.trip-page__hero-media-frame img,
.trip-page__hero-media-frame .trip-page__hero-media-placeholder,
.trip-page__hero-media img,
.trip-page__hero-media-placeholder {
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
}

.trip-page__hero-media-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem;
  border: var(--border-width-1) solid;
  text-align: center;
}

.trip-page__hero-description {
  display: flex;
  flex-direction: column;
  gap: 0.85em;
  min-block-size: 3.5em;
  padding-inline: 0.3em;
  padding-top: 0.8em;
}

.trip-page__expandable-text {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.trip-page__expandable-text-toggle {
  align-self: flex-end;
}

.typewriter-cursor {
  display: inline-block;
  inline-size: 0.55em;
  block-size: 1em;
  margin-inline-start: 0.1em;
  border-inline-end: 0.12em solid;
  vertical-align: text-bottom;
}

@media (min-width: 700px) {
.trip-page__hero-main {
  flex-direction: row;
  align-items: stretch;
  gap: 1.5rem;
}

.trip-page__hero-details {
  flex: 1;
}

.trip-page__hero-media {
  flex-shrink: 0;
  inline-size: 55vw;
  block-size: auto;
  min-block-size: 14rem;
  max-block-size: none;
}

.trip-page__hero-media-frame {
  block-size: auto;
  min-block-size: 14rem;
  max-block-size: 22rem;
  aspect-ratio: 4 / 3;
}
}

.trip-page__card img {
  inline-size: 100%;
  max-block-size: 20rem;
  object-fit: cover;
  border: 1px solid;
}

.trip-page__card > p {
  margin: 0 0 0.75rem;
}

.trip-page__card > p:last-child {
  margin-bottom: 0;
}

.trip-page__card article:not(.trip-restaurant__item):not(.trip-activity__item):not(.trip-event__item):not(.trip-sight__item):not(.trip-flight__offer) {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  padding: 0.75rem 0;
  border-bottom: var(--border-width-1) solid;
}

.trip-page__card article:not(.trip-restaurant__item):not(.trip-activity__item):not(.trip-event__item):not(.trip-sight__item):not(.trip-flight__offer):last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.trip-page__card article:not(.trip-restaurant__item):not(.trip-activity__item):not(.trip-event__item):not(.trip-sight__item):not(.trip-flight__offer):first-of-type {
  padding-top: 0;
}

.trip-restaurant__card {
  display: flex;
  flex-direction: column;
  inline-size: 100%;
}

.trip-restaurant__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.75rem;
  align-items: stretch;
  inline-size: 100%;
}

.trip-restaurant__item {
  display: flex;
  flex-direction: column;
  min-inline-size: 0;
  min-block-size: 0;
  overflow: hidden;
  border: var(--border-width-1) solid;
}

.trip-restaurant__media {
  flex-shrink: 0;
  inline-size: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
}

.trip-restaurant__media img,
.trip-restaurant__media-placeholder {
  display: block;
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
}

.trip-restaurant__media-placeholder {
  border-block-end: var(--border-width-1) solid;
}

.trip-restaurant__body {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  flex: 1;
  min-block-size: 0;
  padding: 0.8rem;
}

.trip-restaurant__meta {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.trip-restaurant__title-row {
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
}

.trip-restaurant__identity {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  flex: 1;
  min-inline-size: 0;
}

.trip-restaurant__name {
  margin: 0;
}

.trip-restaurant__score {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.1rem;
  flex-shrink: 0;
  text-align: end;
  white-space: nowrap;
}

.trip-restaurant__price-level {
  display: inline-flex;
  gap: 0.02em;
  line-height: 1.2;
  letter-spacing: 0.02em;
}

.trip-restaurant__price-euro--empty {
  color: #c4c4c4;
}

.trip-restaurant__rating,
.trip-restaurant__reviews,
.trip-restaurant__distance {
  margin: 0;
  font-size: 0.85em;
}

.trip-restaurant__website {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.trip-restaurant__description {
  flex: 1;
}

.trip-restaurant__view {
  margin-block-start: auto;
  flex-shrink: 0;
  inline-size: 100%;
  text-align: center;
}

.trip-restaurant__view:disabled {
  cursor: not-allowed;
}

.trip-restaurant__footer {
  display: flex;
  justify-content: flex-end;
  margin-block-start: 0.75rem;
  inline-size: 100%;
  border-top: 1px solid;
  padding-top: 0.5em;
}

.trip-activity__list,
.trip-event__list {
  display: flex;
  flex-direction: column;
}

.trip-activity__item,
.trip-event__item,
.trip-sight__item {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 0.75rem 0;
  border-bottom: var(--border-width-1) solid;
}

.trip-activity__item,
.trip-event__item {
  flex-direction: row;
  align-items: flex-start;
  gap: 0.75rem;
}

.trip-event__item {
  justify-content: space-between;
  text-align: start;
}

.trip-event__main {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.2rem;
  flex: 1;
  min-inline-size: 0;
}

.trip-event__name {
  margin: 0;
}

.trip-event__venue {
  margin: 0;
  font-size: 0.85em;
  opacity: 0.8;
}

.trip-event__venue-link {
  margin: 0;
  font-size: 0.85em;
  overflow: hidden;
  text-overflow: ellipsis;
  max-inline-size: 100%;
}

.trip-event__aside {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  flex-shrink: 0;
  text-align: end;
  padding-block-start: 0.15rem;
  white-space: nowrap;
}

.trip-event__dates {
  font-size: 0.85em;
}

.trip-activity__item:first-child,
.trip-event__item:first-child,
.trip-sight__item:first-child {
  padding-top: 0;
}

.trip-activity__item:last-child,
.trip-event__item:last-child,
.trip-sight__item:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.trip-activity__thumb {
  flex-shrink: 0;
  inline-size: 3.5rem;
  block-size: 3.5rem;
  overflow: hidden;
  border: var(--border-width-1) solid;
}

.trip-activity__thumb img,
.trip-activity__thumb-placeholder {
  display: block;
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
}

.trip-activity__main {
  flex: 1;
  min-inline-size: 0;
}

.trip-activity__name {
  margin: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

.trip-activity__start {
  margin: 0.2rem 0 0;
  font-size: 0.85em;
  opacity: 0.8;
}

.trip-activity__start-link {
  overflow-wrap: anywhere;
}

.trip-activity__aside {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.15rem;
  flex-shrink: 0;
  text-align: end;
  white-space: nowrap;
}

.trip-activity__rating,
.trip-activity__reviews {
  font-size: 0.85em;
}

.trip-activity__price--unavailable {
  opacity: 0.7;
}

.trip-activity__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.trip-activity__tag {
  padding: 0.15rem 0.45rem;
  border: var(--border-width-1) solid;
}

.trip-activity__meta {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.trip-sight__list {
  display: flex;
  flex-direction: column;
}

.trip-sight__item {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  text-align: start;
}

.trip-sight__main {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.2rem;
  flex: 1;
  min-inline-size: 0;
}

.trip-sight__name {
  margin: 0;
}

.trip-sight__category {
  display: inline-block;
  margin: 0;
  padding: 0.15rem 0.45rem;
  border: var(--border-width-1) solid;
  font-size: 0.8em;
  white-space: nowrap;
}

.trip-sight__aside {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  flex-shrink: 0;
  text-align: end;
  padding-block-start: 0.15rem;
}

.trip-sight__map-link {
  margin: 0;
  font-size: 0.85em;
  overflow: hidden;
  text-overflow: ellipsis;
  max-inline-size: 100%;
}

.trip-sight__distance {
  margin: 0;
  font-size: 0.85em;
  opacity: 0.8;
}

.trip-hotel__card {
  display: flex;
  flex-direction: column;
  gap: 0;
  justify-content: space-between;
}

.trip-hotel__body {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  flex: 1;
}

.trip-hotel__media {
  inline-size: 100%;
}

.trip-hotel__media img,
.trip-hotel__media-placeholder {
  display: block;
  inline-size: 100%;
  block-size: max(55vh, 340px);
  object-fit: cover;
}

.trip-hotel__media-placeholder {
  border: var(--border-width-1) solid;
}

.trip-hotel__title-row {
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
}

.trip-hotel__name {
  flex: 1;
  min-inline-size: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.trip-hotel__score {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.15rem;
  flex-shrink: 0;
  text-align: end;
}

.trip-hotel__stars {
  margin: 0;
  white-space: nowrap;
}

.trip-hotel__rating,
.trip-hotel__reviews {
  margin: 0;
  font-size: 0.9em;
  white-space: nowrap;
}

.trip-hotel__distance {
  margin: 0;
  font-size: 0.9em;
}

.trip-hotel__dates {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.trip-hotel__date-row {
  display: flex;
  flex-wrap: nowrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
}

.trip-hotel__date-value {
  text-align: end;
  white-space: nowrap;
}

.trip-hotel__price {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: flex-end;
  gap: 0.35rem;
}

.trip-hotel__footer {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  padding-top: 1rem;
  margin-top: 0.5rem;
  border-top: var(--border-width-1) solid;
  gap: 0.75rem;
  font-size: 1.3rem;
  font-weight: 700;
}

.trip-hotel__footer .trip-hotel__price {
  white-space: nowrap;
}

.trip-page__raw-data {
  min-inline-size: 0;
}

.trip-page__raw-data pre {
  overflow: auto;
  max-block-size: 24rem;
}

.trip-page__chat-widget {
  position: fixed;
  inset-inline-end: 1rem;
  inset-block-end: 1rem;
  z-index: var(--z-chat-widget);
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.75rem;
  pointer-events: none;
}

.trip-page__chat-widget > * {
  pointer-events: auto;
}

.trip-page__chat-popup {
  display: none;
  flex-direction: column;
  gap: 0;
  inline-size: min(calc(100vw - 2rem), 22rem);
  max-block-size: min(75vh, 32rem);
  border: var(--border-width-1) solid;
  overflow: hidden;
}

.trip-page__chat-widget[data-open] .trip-page__chat-popup {
  display: flex;
}

.trip-page__chat-popup-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.5rem;
  flex-shrink: 0;
  padding: 0.65rem 0.75rem;
  border-bottom: 1px solid;
}

.trip-page__chat-popup-brand {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  min-inline-size: 0;
}

.trip-page__chat-header-logo-wrap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  inline-size: 1.75rem;
  block-size: 1.75rem;
  border: 1px solid;
  border-radius: var(--radius-full);
}

.trip-page__chat-header-logo {
  inline-size: 1rem;
  block-size: 1rem;
  max-inline-size: 1rem;
  max-block-size: 1rem;
}

.trip-page__chat-header-actions {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  flex-shrink: 0;
}

.trip-page__chat-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  inline-size: 1.75rem;
  block-size: 1.75rem;
  padding: 0;
  border: none;
}

.trip-page__chat-close-icon {
  inline-size: 1rem;
  block-size: 1rem;
}

.trip-page__chat-messages {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  overflow-y: auto;
  min-block-size: 0;
  flex: 1;
  padding: 0.85rem 0.75rem;
}

.trip-page__message-row {
  display: flex;
  align-items: flex-end;
  gap: 0.45rem;
  inline-size: 100%;
}

.trip-page__message-row--assistant {
  justify-content: flex-start;
}

.trip-page__message-row--user {
  justify-content: flex-end;
}

.trip-page__chat-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  inline-size: 1.65rem;
  block-size: 1.65rem;
  border-radius: var(--radius-full);
  border: 1px solid;
}

.trip-page__chat-avatar-logo,
.trip-page__chat-avatar-icon {
  inline-size: 1rem;
  block-size: 1rem;
  max-inline-size: 1rem;
  max-block-size: 1rem;
}

.trip-page__message {
  inline-size: fit-content;
  max-inline-size: calc(100% - 2.2rem);
  padding: 0.5rem 0.6rem;
  border: var(--border-width-1) solid;
  white-space: pre-line;
  overflow-wrap: break-word;
}

.trip-page__chat-footer {
  display: flex;
  flex-direction: column;
  gap: 0;
  flex-shrink: 0;
  padding: 0 0.75rem 0.75rem;
}

.trip-page__chat-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  flex-shrink: 0;
  margin-inline: -0.75rem;
  padding: 0.75rem 0.75rem 0.65rem;
  border-top: var(--border-width-1) solid;
}

.trip-page__chat-actions button:disabled {
  cursor: not-allowed;
}

.trip-page__chat-composer {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  flex-shrink: 0;
  padding: 0;
  margin-top: 0;
}

.trip-page__chat-input {
  inline-size: 100%;
  min-block-size: 3.25rem;
  padding: 0.5rem 0.6rem;
  border: var(--border-width-1) solid;
  resize: vertical;
}

.trip-page__chat-input:disabled {
  cursor: not-allowed;
}

.trip-page__chat-send {
  inline-size: 100%;
}

.trip-page__chat-send:disabled {
  cursor: not-allowed;
}

.trip-page__chat-confirm {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: 0 0 0.65rem;
}

.trip-page__chat-confirm-actions {
  display: flex;
  gap: 0.5rem;
}

.trip-page__chat-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  inline-size: 3rem;
  block-size: 3rem;
  padding: 0.5rem;
  border: none;
  border-radius: var(--radius-full);
}

.trip-page__chat-toggle-logo {
  inline-size: 1.5rem;
  block-size: 1.5rem;
  max-inline-size: 1.5rem;
  max-block-size: 1.5rem;
}

.visually-hidden {
  position: absolute;
  inline-size: 1px;
  block-size: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.trip-flight__card {
  display: flex;
  flex-direction: column;
  gap: 0;
  justify-content: space-between;
  min-block-size: 100%;
}

.trip-flight__title {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  flex-shrink: 0;
  margin: 0 0 0.75rem;
}

.trip-flight__pair {
  display: flex;
  gap: 0;
}

.trip-flight__leg {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 0;
  min-inline-size: 0;
}

.trip-flight__leg-label {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.trip-flight__leg-label .trip-page__card-icon {
  inline-size: 0.95em;
  block-size: 0.95em;
  padding: 0;
}

.trip-flight__date {
  font-size: 1.05rem;
  font-weight: 600;
  text-align: center;
}

.trip-flight__route {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  inline-size: 100%;
  justify-content: center;
}

.trip-flight__time {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.15rem;
  min-inline-size: 3.75rem;
}

.trip-flight__time-value {
  font-size: 1.35rem;
  font-weight: 650;
  line-height: 1.1;
}

.trip-flight__time-city {
  font-size: 0.85rem;
  max-inline-size: 5.5rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-align: center;
}

.trip-flight__line {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  flex: 1;
  max-inline-size: 10rem;
}

.trip-flight__dot {
  inline-size: 0.375rem;
  block-size: 0.375rem;
  border-radius: 999px;
  background: currentColor;
  flex-shrink: 0;
}

.trip-flight__dash {
  flex: 1;
  block-size: 1px;
  background: currentColor;
  opacity: 0.35;
}

.trip-flight__code {
  font-size: 0.75rem;
  white-space: nowrap;
  flex-shrink: 0;
  opacity: 0.75;
}

.trip-flight__meta {
  font-size: 0.85rem;
  text-align: center;
  opacity: 0.8;
}

.trip-flight__divider {
  inline-size: 1px;
  margin-block: 0.5rem;
  flex-shrink: 0;
  background: currentColor;
  opacity: 0.2;
}

.trip-flight__details {
  display: flex;
  gap: 1.5rem;
  padding: 0.75rem 0;
  border-top: var(--border-width-1) solid;
  margin-top: 0.5rem;
  font-size: 0.95rem;
}

.trip-flight__footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-shrink: 0;
  padding-top: 1rem;
  margin-top: 0.5rem;
  border-top: var(--border-width-1) solid;
  gap: 0.75rem;
  font-size: 1.3rem;
}

.trip-flight__price {
  font-weight: 700;
  white-space: nowrap;
}

.trip-flight__price-note {
  font-weight: 400;
  white-space: nowrap;
}

.trip-flight__offer {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0;
  flex: 1 1 auto;
  min-block-size: 0;
}

@media (min-width: 900px) {
.trip-page__grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
}

@media (max-width: 899px) {
.trip-restaurant__grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
}

/* Mobile structural rules live in result-mobile.css (loaded ≤699px). */
