@layer public.foundation, public.base, public.components, public.pages, public.responsive, public.utilities;

@layer public.pages {
.public-trip-shell {
  --trip-catalog-surface-solid: var(--public-surface-solid, #ffffff);
  --trip-catalog-surface-filter: rgba(255, 255, 255, 0.74);
  --trip-catalog-surface-stat: rgba(255, 255, 255, 0.76);
  --trip-catalog-surface-action: rgba(255, 255, 255, 0.72);
  --trip-catalog-surface-action-muted: rgba(255, 255, 255, 0.68);
  --trip-catalog-hero-orb-bg: radial-gradient(circle, color-mix(in srgb, var(--bt-color-aqua, #4fc3f7) 16%, transparent), transparent 72%);
  --trip-catalog-filter-bg:
    linear-gradient(135deg, rgba(255, 255, 255, 0.9), rgba(249, 252, 255, 0.78)),
    radial-gradient(circle at 96% 0%, color-mix(in srgb, var(--bt-color-aqua, #4fc3f7) 8%, transparent), transparent 42%);
  --trip-catalog-results-bg:
    radial-gradient(circle at 0% 4%, color-mix(in srgb, var(--bt-color-aqua, #4fc3f7) 10%, transparent), transparent 30%),
    linear-gradient(180deg, rgba(239, 247, 255, 0.68), rgba(255, 255, 255, 0.56));
  --trip-catalog-filter-text: #5f7287;
  --trip-catalog-label: #66788c;
  --trip-catalog-border: color-mix(in srgb, var(--bt-color-deep-ocean, #0d47a1) 8%, transparent);
  --trip-catalog-border-panel: color-mix(in srgb, var(--bt-color-deep-ocean, #0d47a1) 7.5%, transparent);
  --trip-catalog-border-control: color-mix(in srgb, var(--bt-color-deep-ocean, #0d47a1) 12%, transparent);
  --trip-catalog-border-hover: color-mix(in srgb, var(--bt-color-deep-ocean, #0d47a1) 18%, transparent);
  --trip-catalog-border-strong: color-mix(in srgb, var(--bt-color-deep-ocean, #0d47a1) 22%, transparent);
  --trip-catalog-border-focus: color-mix(in srgb, var(--bt-color-deep-ocean, #0d47a1) 24%, transparent);
  --trip-catalog-radius-lg: 26px;
  --trip-catalog-radius-md: 22px;
  --trip-catalog-radius-sm: var(--public-radius-sm, 12px);
  --trip-catalog-radius-control: var(--public-radius-sm, 12px);
  --trip-catalog-radius-pill: var(--public-radius-pill, 999px);
  --trip-catalog-hero-orb-size: 220px;
  --trip-catalog-filter-columns: 6;
  --trip-catalog-filter-advanced-columns: 3;
  --trip-catalog-filter-mobile-columns: 3;
  --trip-catalog-filter-primary-country-min: 132px;
  --trip-catalog-filter-primary-route-min: 150px;
  --trip-catalog-filter-primary-duration-min: 170px;
  --trip-catalog-filter-primary-country-min-compact: 120px;
  --trip-catalog-filter-primary-route-min-compact: 136px;
  --trip-catalog-filter-primary-duration-min-compact: 152px;
  --trip-catalog-partner-radius: var(--trip-catalog-radius-md);
  --trip-catalog-shadow-panel: 0 18px 40px color-mix(in srgb, var(--bt-color-deep-ocean, #0d47a1) 4.5%, transparent);
  --trip-catalog-shadow-panel-soft: 0 14px 32px color-mix(in srgb, var(--bt-color-deep-ocean, #0d47a1) 4.5%, transparent);
  --trip-catalog-shadow-control: 0 8px 18px color-mix(in srgb, var(--bt-color-deep-ocean, #0d47a1) 4%, transparent);
  --trip-catalog-shadow-stat: 0 10px 24px color-mix(in srgb, var(--bt-color-deep-ocean, #0d47a1) 5%, transparent);
  --trip-catalog-focus-ring: 0 0 0 4px color-mix(in srgb, var(--bt-color-aqua, #4fc3f7) 8%, transparent);
  --trip-catalog-panel-inset: inset 0 1px 0 rgba(255, 255, 255, 0.86);
  --trip-catalog-results-inset: inset 0 1px 0 rgba(255, 255, 255, 0.72);
  --trip-partner-border: rgba(86, 111, 78, 0.16);
  --trip-partner-border-soft: rgba(86, 111, 78, 0.12);
  --trip-partner-border-action: rgba(86, 111, 78, 0.18);
  --trip-partner-border-action-hover: rgba(86, 111, 78, 0.32);
  --trip-partner-card-border: var(--trip-catalog-border);
  --trip-partner-product-border: var(--trip-catalog-border);
  --trip-partner-product-hover-border: rgba(18, 92, 157, 0.18);
  --trip-partner-bg:
    radial-gradient(circle at top right, rgba(161, 190, 128, 0.14), transparent 30%),
    linear-gradient(180deg, rgba(248, 250, 244, 0.9), rgba(255, 255, 255, 0.74));
  --trip-partner-card-bg: rgba(255, 255, 255, 0.82);
  --trip-partner-action-bg: rgba(255, 255, 255, 0.72);
  --trip-partner-chip-bg: rgba(91, 122, 72, 0.12);
  --trip-partner-chip-bg-soft: rgba(91, 122, 72, 0.1);
  --trip-partner-chip-text: #46633c;
  --trip-partner-note-text: #6f7867;
  --trip-partner-logo-bg: rgba(18, 92, 157, 0.06);
  --trip-partner-product-bg: rgba(248, 252, 255, 0.78);
  --trip-partner-product-shadow: 0 10px 18px color-mix(in srgb, var(--bt-color-deep-ocean, #0d47a1) 5%, transparent);
  --trip-partner-more-bg: color-mix(in srgb, var(--bt-color-deep-ocean, #0d47a1) 5%, transparent);
  --trip-partner-empty-bg: rgba(18, 92, 157, 0.04);
  --trip-partner-inset: inset 0 1px 0 rgba(255, 255, 255, 0.84);
  --trip-catalog-load-more-border: var(--trip-catalog-border-control);
  --trip-catalog-load-more-border-hover: var(--trip-catalog-border-strong, color-mix(in srgb, var(--bt-color-deep-ocean, #0d47a1) 22%, transparent));
  --trip-catalog-load-more-bg: var(--trip-catalog-surface-solid);
  --trip-catalog-load-more-shadow: 0 12px 24px color-mix(in srgb, var(--bt-color-deep-ocean, #0d47a1) 8%, transparent);
  --trip-catalog-transition:
    border-color var(--public-transition-base, 0.18s ease),
    box-shadow var(--public-transition-base, 0.18s ease),
    background var(--public-transition-base, 0.18s ease);
  --trip-catalog-action-transition:
    transform var(--public-transition-base, 0.18s ease),
    border-color var(--public-transition-base, 0.18s ease),
    background var(--public-transition-base, 0.18s ease),
    color var(--public-transition-base, 0.18s ease);

  display: flex;
  flex-direction: column;
  gap: 14px;
}

.public-trip-main {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.public-trip-hero,
.trip-filter-panel,
.trip-results-section {
  position: relative;
  overflow: visible;
}

.public-trip-hero::after,
.trip-filter-panel::after {
  content: "";
  position: absolute;
  right: -60px;
  top: -80px;
  width: var(--trip-catalog-hero-orb-size);
  height: var(--trip-catalog-hero-orb-size);
  border-radius: 50%;
  background: var(--trip-catalog-hero-orb-bg);
  pointer-events: none;
}

.trip-filter-panel::after {
  display: none;
}

.public-trip-hero {
  display: flex;
  flex-direction: column;
  gap: 18px;
  padding: 8px 4px 2px;
}

.public-trip-hero-copy {
  min-width: 0;
}

.public-trip-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 32px;
  padding: 0 14px;
  border-radius: var(--trip-catalog-radius-pill);
  background: var(--trip-primary-soft);
  color: var(--trip-primary);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.trip-catalog-header {
  margin-bottom: 0;
}

.trip-page-subtitle {
  max-width: 680px;
  margin: 14px 0 0;
  font-size: 16px;
  line-height: 1.8;
  color: var(--trip-text-soft);
}

.public-trip-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.public-trip-stat {
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
  min-height: 0;
  padding: 10px 14px;
  border-radius: var(--trip-catalog-radius-pill);
  background: var(--trip-catalog-surface-stat);
  border: 1px solid var(--trip-catalog-border);
  box-shadow: var(--trip-catalog-shadow-stat);
}

.public-trip-stat-value {
  font-size: 22px;
  font-weight: 700;
  line-height: 1;
  color: var(--trip-primary);
}

.public-trip-stat-label {
  font-size: 13px;
  line-height: 1.3;
  color: var(--trip-text-soft);
}

.trip-filter-panel {
  margin: 2px 0 6px;
  padding: 14px;
  border: 1px solid var(--trip-catalog-border-panel);
  border-radius: var(--trip-catalog-radius-md);
  background: var(--trip-catalog-filter-bg);
  box-shadow:
    var(--trip-catalog-panel-inset),
    var(--trip-catalog-shadow-panel-soft);
  backdrop-filter: none;
}

.trip-results-title {
  margin: 0;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--trip-primary-strong);
}

.trip-results-title {
  display: inline-flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 8px;
}

.trip-results-title-meta {
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  color: var(--trip-text-soft);
}

.trip-filter-subtitle,
.trip-results-subtitle {
  margin: 10px 0 0;
  font-size: 14px;
  line-height: 1.7;
  color: var(--trip-text-soft);
}

.trip-filter-reset {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 12px;
  border: 1px solid var(--trip-catalog-border);
  border-radius: var(--trip-catalog-radius-control);
  background: var(--trip-catalog-surface-action);
  color: var(--trip-catalog-filter-text);
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
  cursor: pointer;
  transition: var(--trip-catalog-action-transition);
}

.trip-filter-reset:hover {
  transform: translateY(-1px);
  border-color: var(--trip-catalog-border-hover);
  background: var(--trip-catalog-surface-solid);
  color: var(--trip-primary);
}

.trip-filter-grid {
  display: grid;
  grid-template-columns: repeat(var(--trip-catalog-filter-columns), minmax(0, 1fr));
  gap: 12px;
}

.trip-filter-primary {
  display: grid;
  grid-template-columns:
    minmax(var(--trip-catalog-filter-primary-country-min), 0.82fr)
    minmax(var(--trip-catalog-filter-primary-route-min), 0.9fr)
    minmax(var(--trip-catalog-filter-primary-duration-min), 0.98fr)
    auto;
  align-items: end;
  gap: 10px;
}

.trip-filter-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}

.trip-filter-label {
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--trip-catalog-label);
}

.trip-filter-select {
  width: 100%;
  min-height: 42px;
  padding: 0 13px;
  border: 1px solid var(--trip-catalog-border-control);
  border-radius: var(--trip-catalog-radius-control);
  background: var(--trip-catalog-surface-filter);
  color: var(--trip-text);
  font-size: 14px;
  line-height: 1.4;
  box-sizing: border-box;
  appearance: none;
  outline: none;
  box-shadow: var(--trip-catalog-shadow-control);
  transition: var(--trip-catalog-transition);
}

.trip-filter-select:focus {
  border-color: var(--trip-catalog-border-focus);
  box-shadow: var(--trip-catalog-focus-ring);
  background: var(--trip-catalog-surface-solid);
}

.trip-filter-input {
  width: 100%;
  min-height: 42px;
  padding: 0 13px;
  border: 1px solid var(--trip-catalog-border-control);
  border-radius: var(--trip-catalog-radius-control);
  background: var(--trip-catalog-surface-filter);
  color: var(--trip-text);
  font-size: 14px;
  line-height: 1.4;
  box-sizing: border-box;
  outline: none;
  box-shadow: var(--trip-catalog-shadow-control);
  transition: var(--trip-catalog-transition);
}

.trip-filter-input:focus {
  border-color: var(--trip-catalog-border-focus);
  box-shadow: var(--trip-catalog-focus-ring);
  background: var(--trip-catalog-surface-solid);
}

.trip-filter-primary-action {
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
  gap: 8px;
  min-width: 0;
}

.trip-filter-advanced-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 14px;
  border: 1px solid var(--trip-catalog-border);
  border-radius: var(--trip-catalog-radius-control);
  background: var(--trip-catalog-surface-action-muted);
  color: var(--trip-catalog-filter-text);
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
  cursor: pointer;
  transition: var(--trip-catalog-action-transition);
}

.trip-filter-advanced-toggle:hover {
  transform: translateY(-1px);
  border-color: var(--trip-catalog-border-hover);
  background: var(--trip-catalog-surface-solid);
  color: var(--trip-primary);
}

.trip-filter-advanced {
  display: none;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--trip-catalog-border);
}

.trip-filter-advanced.is-expanded {
  display: block;
}

.trip-filter-grid-advanced {
  grid-template-columns: repeat(var(--trip-catalog-filter-advanced-columns), minmax(0, 1fr));
}

.trip-results-section {
  margin-top: 6px;
  padding: 18px;
  border: 1px solid var(--trip-catalog-border-panel);
  border-radius: var(--trip-catalog-radius-lg);
  background: var(--trip-catalog-results-bg);
  box-shadow:
    var(--trip-catalog-results-inset),
    var(--trip-catalog-shadow-panel);
}

.trip-partner-section {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 16px;
  padding: 14px;
  border: 1px solid var(--trip-partner-border);
  border-radius: var(--trip-catalog-partner-radius);
  background: var(--trip-partner-bg);
  box-shadow: var(--trip-partner-inset);
}

.trip-partner-audience {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 10px;
}

.trip-partner-audience-label {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 10px;
  border-radius: var(--trip-catalog-radius-pill);
  background: var(--trip-partner-chip-bg);
  color: var(--trip-partner-chip-text);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.trip-partner-audience-note {
  color: var(--trip-partner-note-text);
  font-size: 12px;
  line-height: 1.45;
}

.trip-partner-intro {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--trip-partner-border-soft);
}

.trip-partner-intro-copy {
  min-width: 0;
}

.trip-partner-eyebrow {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 10px;
  border-radius: 999px;
  background: var(--trip-partner-chip-bg-soft);
  color: var(--trip-partner-chip-text);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.trip-partner-section .trip-results-title {
  margin: 6px 0 2px;
  font-size: 22px;
}

.trip-partner-section .trip-results-subtitle {
  margin: 0;
  max-width: 760px;
  font-size: 13px;
  line-height: 1.5;
}

.trip-partner-onboarding-link {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 0 12px;
  border-radius: 999px;
  border: 1px solid var(--trip-partner-border-action);
  background: var(--trip-partner-action-bg);
  color: var(--trip-partner-chip-text);
  font-size: 12px;
  font-weight: 800;
  text-decoration: none;
  transition: transform 160ms ease, background-color 160ms ease, border-color 160ms ease;
  white-space: nowrap;
}

.trip-partner-onboarding-link:hover,
.trip-partner-onboarding-link:focus-visible {
  transform: translateY(-1px);
  border-color: var(--trip-partner-border-action-hover);
  background: var(--trip-catalog-surface-solid);
  outline: none;
}

.trip-partner-grid {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 10px;
}

.trip-partner-card {
  flex: 1 1 260px;
  max-width: min(360px, 100%);
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 10px;
  padding: 12px;
  border: 1px solid var(--trip-partner-card-border);
  border-radius: 16px;
  background: var(--trip-partner-card-bg);
  box-shadow: none;
}

.trip-partner-card--channel {
  max-width: min(420px, 100%);
}

.trip-partner-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  min-width: 0;
}

.trip-partner-company {
  display: flex;
  align-items: center;
  flex: 1 1 auto;
  gap: 8px;
  min-width: 0;
  margin: -3px -4px;
  padding: 3px 4px;
  border-radius: 14px;
  cursor: pointer;
  text-decoration: none;
  transition: background-color 160ms ease;
}

.trip-partner-company:hover,
.trip-partner-company:focus-visible {
  background: rgba(18, 92, 157, 0.045);
  outline: none;
}

.trip-partner-company:hover .trip-partner-company-copy strong,
.trip-partner-company:focus-visible .trip-partner-company-copy strong {
  color: var(--trip-primary);
}

.trip-partner-company-copy {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}

.trip-partner-company-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--trip-text-soft);
}

.trip-partner-company-copy strong {
  font-size: 15px;
  line-height: 1.2;
  color: var(--trip-primary-strong);
  transition: color 160ms ease;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.trip-partner-logo {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  object-fit: contain;
  background: var(--trip-partner-logo-bg);
  color: var(--trip-primary-strong);
}

.trip-partner-logo-company {
  width: 38px;
  height: 38px;
  border-radius: 13px;
  padding: 5px;
}

.trip-partner-logo-product {
  width: 20px;
  height: 20px;
  border-radius: 7px;
  padding: 3px;
}

.trip-partner-logo-channel {
  width: 42px;
  height: 42px;
  border-radius: 14px;
  padding: 5px;
}

.trip-partner-logo.is-fallback {
  font-weight: 800;
}

.trip-partner-metrics {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 4px;
  flex: 0 0 auto;
  max-width: 112px;
}

.trip-partner-metric {
  display: inline-flex;
  align-items: baseline;
  gap: 3px;
  min-height: 22px;
  padding: 0 7px;
  border-radius: 999px;
  background: var(--trip-partner-logo-bg);
  color: var(--trip-text-soft);
  font-size: 10px;
  font-weight: 700;
  cursor: default;
}

.trip-partner-metric strong {
  font-size: 12px;
  line-height: 1;
  color: var(--trip-primary);
}

.trip-partner-products {
  min-width: 0;
}

.trip-partner-product-list {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 6px;
  overflow: hidden;
}

.trip-partner-product {
  display: inline-flex;
  align-items: center;
  flex: 0 1 auto;
  gap: 5px;
  min-width: 0;
  max-width: 118px;
  min-height: 26px;
  padding: 0 8px 0 5px;
  border-radius: 999px;
  border: 1px solid var(--trip-partner-product-border);
  background: var(--trip-partner-product-bg);
  text-decoration: none;
  transition: transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.trip-partner-product:hover,
.trip-partner-product:focus-visible {
  transform: translateY(-1px);
  border-color: var(--trip-partner-product-hover-border);
  box-shadow: var(--trip-partner-product-shadow);
  outline: none;
}

.trip-partner-product-name {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--trip-primary-strong);
}

.trip-partner-product-more {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  min-height: 26px;
  padding: 0 7px;
  border-radius: 999px;
  background: var(--trip-partner-more-bg);
  color: var(--trip-text-soft);
  font-size: 11px;
  font-weight: 800;
}

.trip-partner-empty {
  padding: 6px 8px;
  border-radius: 12px;
  background: var(--trip-partner-empty-bg);
  color: var(--trip-text-soft);
  font-size: 12px;
  line-height: 1.5;
}

.trip-partner-actions {
  display: flex;
  flex-wrap: nowrap;
  justify-content: flex-start;
  gap: 6px;
  margin-top: auto;
}

.trip-partner-actions .trip-btn {
  flex: 1 1 auto;
  min-height: 30px;
  padding: 0 10px;
  border-radius: 999px;
  font-size: 11px;
  white-space: nowrap;
}

.trip-channel-partner-block {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-top: 12px;
  border-top: 1px solid var(--trip-partner-border-soft);
}

.trip-channel-partner-heading {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.trip-channel-partner-heading h3 {
  margin: 0;
  color: var(--trip-primary-strong);
  font-size: 16px;
}

.trip-channel-partner-heading p {
  margin: 3px 0 0;
  color: var(--trip-text-muted);
  font-size: 12px;
  line-height: 1.45;
}

.trip-partner-grid--channel .trip-partner-card {
  flex-basis: 300px;
}

.trip-channel-partner-body {
  display: flex;
  flex-direction: column;
  gap: 5px;
  min-width: 0;
}

.trip-channel-partner-body strong {
  color: var(--trip-primary-strong);
  font-size: 13px;
  line-height: 1.35;
}

.trip-channel-partner-body p {
  display: -webkit-box;
  margin: 0;
  color: var(--trip-text-muted);
  font-size: 12px;
  line-height: 1.55;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.trip-channel-partner-location {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  min-height: 22px;
  padding: 0 8px;
  border-radius: 999px;
  background: var(--trip-partner-more-bg);
  color: var(--trip-text-soft);
  font-size: 11px;
  font-weight: 800;
}

.trip-results-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 16px;
}

.trip-results-subtitle strong {
  color: var(--trip-primary);
}

.trip-results-placeholder {
  padding: 36px 18px;
  text-align: center;
}

.trip-catalog-years {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.trip-load-more-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-top: 24px;
}

.trip-load-more {
  min-height: 40px;
  padding: 0 18px;
  border: 1px solid var(--trip-catalog-load-more-border);
  border-radius: 999px;
  background: var(--trip-catalog-load-more-bg);
  color: var(--trip-primary);
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
  transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

.trip-load-more:hover:not(:disabled),
.trip-load-more:focus-visible:not(:disabled) {
  transform: translateY(-1px);
  border-color: var(--trip-catalog-load-more-border-hover);
  box-shadow: var(--trip-catalog-load-more-shadow);
  outline: none;
}

.trip-load-more:disabled {
  cursor: wait;
  opacity: 0.62;
}

.trip-load-more-meta {
  color: var(--trip-text-soft);
  font-size: 12px;
  font-weight: 700;
}

.trip-year-toggle {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 8px 10px 14px;
  border: 1px solid transparent;
  border-bottom: 1px solid color-mix(in srgb, var(--bt-color-deep-ocean, #0d47a1) 12%, transparent);
  border-radius: 14px;
  background: transparent;
  text-align: left;
  cursor: pointer;
  transition:
    background-color 160ms ease,
    border-color 160ms ease,
    box-shadow 160ms ease;
}

.trip-year-toggle:hover,
.trip-year-toggle:focus-visible {
  border-color: color-mix(in srgb, var(--bt-color-deep-ocean, #0d47a1) 12%, transparent);
  background: rgba(255, 255, 255, 0.58);
  box-shadow: 0 8px 18px color-mix(in srgb, var(--bt-color-deep-ocean, #0d47a1) 4%, transparent);
  outline: none;
}

.trip-year-toggle.is-expanded {
  background: rgba(255, 255, 255, 0.32);
}

.trip-year-toggle-main {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.trip-year-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: 0 12px;
  border-radius: 999px;
  background: var(--trip-primary-soft);
  color: var(--trip-primary);
  font-size: 12px;
  font-weight: 700;
}

.trip-year-arrow,
.trip-month-arrow {
  flex: 0 0 auto;
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: color-mix(in srgb, var(--bt-color-deep-ocean, #0d47a1) 8%, transparent);
  color: var(--trip-primary-strong);
  font-size: 18px;
  font-weight: 700;
  transition:
    background-color 160ms ease,
    transform 160ms ease;
}

.trip-year-toggle:hover .trip-year-arrow,
.trip-year-toggle:focus-visible .trip-year-arrow,
.trip-month-toggle:hover .trip-month-arrow,
.trip-month-toggle:focus-visible .trip-month-arrow {
  background: color-mix(in srgb, var(--bt-color-deep-ocean, #0d47a1) 13%, transparent);
  transform: translateY(-1px);
}

.trip-year-body {
  display: none;
  padding: 18px 0 0;
}

.trip-year-body.is-expanded {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.trip-month-toggle {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 7px 10px 12px;
  border: 1px solid transparent;
  border-radius: 14px;
  background: transparent;
  text-align: left;
  cursor: pointer;
  transition:
    background-color 160ms ease,
    border-color 160ms ease,
    box-shadow 160ms ease;
}

.trip-month-toggle:hover,
.trip-month-toggle:focus-visible {
  border-color: color-mix(in srgb, var(--bt-color-deep-ocean, #0d47a1) 10%, transparent);
  background: rgba(255, 255, 255, 0.52);
  box-shadow: 0 8px 18px color-mix(in srgb, var(--bt-color-deep-ocean, #0d47a1) 3.5%, transparent);
  outline: none;
}

.trip-month-toggle.is-expanded {
  background: rgba(255, 255, 255, 0.28);
}

.trip-month-toggle-left {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  min-width: 0;
}

.trip-month-name {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--trip-primary-strong);
}

.trip-month-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 26px;
  padding: 0 10px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--bt-color-aqua, #4fc3f7) 14%, transparent);
  color: var(--trip-primary);
  font-size: 12px;
  font-weight: 700;
}

.trip-month-summary {
  margin: 0 0 12px;
  color: var(--trip-text-soft);
  font-size: 13px;
  line-height: 1.65;
}

.trip-card {
  display: grid;
  grid-template-columns: 170px minmax(0, 1fr) 136px;
  gap: 18px;
  align-items: center;
  padding: 16px 18px;
  border: 1px solid color-mix(in srgb, var(--bt-color-deep-ocean, #0d47a1) 8%, transparent);
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 14px 32px color-mix(in srgb, var(--bt-color-deep-ocean, #0d47a1) 5%, transparent);
}

.trip-card:nth-of-type(odd) {
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.94), rgba(250, 253, 255, 0.9));
}

.trip-card:nth-of-type(even) {
  border-color: color-mix(in srgb, var(--bt-color-deep-ocean, #0d47a1) 10.5%, transparent);
  background:
    linear-gradient(135deg, rgba(244, 249, 255, 0.94), rgba(255, 255, 255, 0.88));
}

.trip-card + .trip-card {
  margin-top: 10px;
}

.trip-card-side {
  display: flex;
  flex-direction: column;
  gap: 7px;
  min-width: 0;
  box-sizing: border-box;
  align-self: stretch;
  justify-content: center;
  padding: 12px 13px;
  border: 1px solid color-mix(in srgb, var(--bt-color-deep-ocean, #0d47a1) 9%, transparent);
  border-radius: 16px;
  background:
    linear-gradient(180deg, rgba(231, 241, 251, 0.72), rgba(255, 255, 255, 0.68)),
    radial-gradient(circle at 18% 14%, color-mix(in srgb, var(--bt-color-aqua, #4fc3f7) 13%, transparent), transparent 58%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.72);
}

.trip-card:nth-of-type(even) .trip-card-side {
  background:
    linear-gradient(180deg, rgba(222, 237, 250, 0.78), rgba(248, 252, 255, 0.72)),
    radial-gradient(circle at 18% 14%, color-mix(in srgb, var(--bt-color-aqua, #4fc3f7) 16%, transparent), transparent 58%);
}

.trip-card-time-group {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 2px 0 8px;
  border-bottom: 1px solid color-mix(in srgb, var(--bt-color-deep-ocean, #0d47a1) 10%, transparent);
}

.trip-card-time-group:last-of-type {
  border-bottom: 0;
  padding-bottom: 2px;
}

.trip-card-side-label {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: rgba(79, 101, 125, 0.74);
}

.trip-card-side-value {
  font-size: 15px;
  font-weight: 850;
  line-height: 1.35;
  color: var(--trip-primary-strong);
}

.trip-card-side-sub {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  min-height: 26px;
  padding: 0 10px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--bt-color-aqua, #4fc3f7) 12%, transparent);
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
  color: var(--trip-primary);
}

.trip-card-main {
  position: relative;
  box-sizing: border-box;
  align-self: stretch;
  justify-content: center;
  padding: 12px 14px 12px 16px;
  border: 1px solid color-mix(in srgb, var(--bt-color-deep-ocean, #0d47a1) 4.5%, transparent);
  border-radius: 16px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.9), rgba(247, 251, 255, 0.74)),
    radial-gradient(circle at 94% 10%, color-mix(in srgb, var(--bt-color-deep-ocean, #0d47a1) 4.5%, transparent), transparent 54%);
}

.trip-card:nth-of-type(even) .trip-card-main {
  background:
    linear-gradient(135deg, rgba(250, 253, 255, 0.9), rgba(240, 247, 255, 0.7)),
    radial-gradient(circle at 94% 10%, color-mix(in srgb, var(--bt-color-aqua, #4fc3f7) 5.5%, transparent), transparent 54%);
}

.trip-card-main::before {
  content: "";
  position: absolute;
  left: -10px;
  top: 8px;
  bottom: 8px;
  width: 1px;
  border-radius: 999px;
  background: linear-gradient(180deg, transparent, color-mix(in srgb, var(--bt-color-deep-ocean, #0d47a1) 12%, transparent), transparent);
}

.trip-card-topline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.trip-card-organization {
  min-width: 0;
  font-size: 12px;
  font-weight: 650;
  line-height: 1.6;
  color: rgba(79, 101, 125, 0.78);
}

.trip-card-product-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-height: 22px;
  gap: 5px;
  padding: 0 7px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--bt-color-deep-ocean, #0d47a1) 2.5%, transparent);
  color: rgba(95, 114, 135, 0.82);
  font-size: 10px;
  font-weight: 650;
  letter-spacing: 0.02em;
  text-decoration: none;
  transition: background-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.trip-card-product-badge.is-link:hover,
.trip-card-product-badge.is-link:focus-visible {
  background: color-mix(in srgb, var(--bt-color-deep-ocean, #0d47a1) 7%, transparent);
  color: #49657f;
  transform: translateY(-1px);
  outline: none;
}

.trip-card-product-logo {
  width: 1em;
  height: 1em;
  flex: 0 0 auto;
  object-fit: contain;
  border-radius: 999px;
}

.trip-card-product-name {
  min-width: 0;
}

.trip-card-journey {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.trip-card-port-block {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}

.trip-card-port-city {
  font-size: 22px;
  font-weight: 700;
  line-height: 1.05;
  color: var(--trip-primary-strong);
}

.trip-card-port-code {
  font-size: 12px;
  line-height: 1.4;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--trip-text-soft);
}

.trip-card-title-block {
  min-width: 0;
}

.trip-card-heading-title {
  margin: 0;
}

.trip-card-heading-link {
  color: inherit;
  text-decoration: none;
  transition: color 160ms ease, text-shadow 160ms ease;
}

.trip-card-heading-link:hover,
.trip-card-heading-link:focus-visible {
  color: var(--trip-primary);
  text-shadow: 0 8px 18px rgba(18, 92, 157, 0.12);
  outline: none;
}

.trip-card-title-block .trip-card-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin-top: 4px;
  font-size: 12px;
  line-height: 1.4;
}

.trip-card-meta-separator,
.trip-card-destination {
  color: inherit;
}

.trip-card-route-link {
  color: var(--trip-primary);
  font-weight: 800;
  text-decoration: none;
  border-bottom: 1px solid rgba(18, 92, 157, 0.22);
  transition: color 160ms ease, border-color 160ms ease;
}

.trip-card-route-link:hover,
.trip-card-route-link:focus-visible {
  color: var(--trip-primary-strong);
  border-color: rgba(18, 92, 157, 0.58);
  outline: none;
}

.trip-card-availability-row {
  display: flex;
  align-items: center;
}

.trip-card-availability-block {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 7px;
}

.trip-card-availability-block.has-details {
  width: 100%;
}

.trip-card-availability {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 28px;
  padding: 0 9px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--bt-color-deep-ocean, #0d47a1) 4.5%, transparent);
  color: #60758d;
}

.trip-card-availability.is-empty {
  background: rgba(193, 74, 45, 0.08);
  color: rgba(160, 55, 36, 0.86);
}

.trip-card-availability-label {
  font-size: 11px;
  font-weight: 650;
  letter-spacing: 0.03em;
}

.trip-card-availability-value {
  font-size: 13px;
  font-weight: 650;
  line-height: 1;
}

.trip-card-bed-breakdown {
  width: 100%;
  max-width: 360px;
}

.trip-card-bed-breakdown-toggle {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  margin-left: 2px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(18, 92, 157, 0.08);
  color: #60758d;
  font-size: 13px;
  font-weight: 800;
  line-height: 1;
  cursor: pointer;
  transition: background-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.trip-card-bed-breakdown-toggle:hover,
.trip-card-bed-breakdown-toggle:focus-visible {
  background: rgba(18, 92, 157, 0.14);
  color: var(--trip-primary);
  transform: translateY(-1px);
  outline: none;
}

.trip-card-bed-breakdown-toggle-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1em;
  height: 1em;
}

.trip-card-bed-breakdown-body {
  margin-top: 6px;
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(18, 92, 157, 0.05);
  border: 1px solid rgba(18, 92, 157, 0.1);
}

.trip-card-bed-breakdown-title {
  display: block;
  margin-bottom: 8px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--trip-text-soft);
}

.trip-card-bed-breakdown-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.trip-card-bed-breakdown-item {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 26px;
  padding: 0 9px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(18, 92, 157, 0.1);
}

.trip-card-bed-breakdown-kind {
  font-size: 12px;
  font-weight: 800;
  color: var(--trip-primary-strong);
}

.trip-card-bed-breakdown-value {
  font-size: 12px;
  color: var(--trip-text-soft);
  white-space: nowrap;
}

.trip-card-status {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  padding: 0 12px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--bt-color-deep-ocean, #0d47a1) 8%, transparent);
  color: var(--trip-primary);
  font-size: 12px;
  font-weight: 700;
}

.trip-status-open {
  background: var(--trip-success-bg);
  color: var(--trip-success-text);
}

.trip-status-partially_sold {
  background: var(--trip-warning-bg);
  color: var(--trip-warning-text);
}

.trip-status-sold_out {
  background: var(--trip-danger-bg);
  color: var(--trip-danger-text);
}

.trip-card-starting-price {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
  padding: 4px 0 2px;
}

.trip-card-starting-price-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--trip-text-soft);
}

.trip-card-starting-price-value {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  color: var(--trip-primary-strong);
}

.trip-card-starting-price-currency,
.trip-card-starting-price-unit,
.trip-card-starting-price-suffix {
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  color: var(--trip-text-soft);
}

.trip-card-starting-price-amount {
  font-size: 24px;
  font-weight: 800;
  line-height: 0.95;
  color: var(--trip-primary-strong);
}

.trip-card-starting-price-amount.is-price {
  color: #d47a23;
  text-shadow: 0 8px 18px rgba(212, 122, 35, 0.12);
}

.trip-card-starting-price-amount.is-pending {
  font-size: 18px;
  line-height: 1.15;
}

.trip-card-main {
  gap: 10px;
}

.trip-card-summary-row {
  gap: 5px 14px;
}

.trip-card-summary-item {
  font-size: 13px;
  line-height: 1.45;
}

.trip-card-actions {
  gap: 8px;
}

.trip-card-actions .trip-btn {
  min-height: 38px;
  padding: 0 12px;
  font-size: 13px;
}

.trip-card {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 14px;
}

.trip-opportunity-top {
  display: grid;
  grid-template-columns: 148px minmax(0, 1fr);
  gap: 18px;
  align-items: stretch;
}

.trip-opportunity-media {
  position: relative;
  align-self: start;
  width: 100%;
  height: 168px;
  min-width: 0;
  min-height: 0;
  border-radius: 16px;
  overflow: hidden;
  background: color-mix(in srgb, var(--bt-color-deep-ocean, #0d47a1) 6%, transparent);
}

.trip-opportunity-cover {
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;
  display: block;
}

.trip-opportunity-fallback {
  width: 100%;
  height: 100%;
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--trip-primary);
  font-size: 28px;
  font-weight: 900;
  letter-spacing: 0.08em;
  background:
    linear-gradient(135deg, rgba(233, 244, 252, 0.96), rgba(255, 255, 255, 0.86));
}

.trip-opportunity-cover-source {
  position: absolute;
  left: 10px;
  right: 10px;
  bottom: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 30px;
  padding: 0 10px;
  border: 1px solid rgba(255, 255, 255, 0.52);
  border-radius: 999px;
  background: rgba(9, 35, 62, 0.68);
  box-shadow: 0 8px 20px rgba(8, 31, 56, 0.16);
  color: #fff;
  font-size: 11px;
  font-weight: 760;
  line-height: 1;
  text-decoration: none;
  backdrop-filter: blur(10px);
  cursor: default;
  transition:
    background-color 160ms ease,
    border-color 160ms ease,
    transform 160ms ease;
}

a.trip-opportunity-cover-source {
  cursor: pointer;
}

a.trip-opportunity-cover-source:hover,
a.trip-opportunity-cover-source:focus-visible {
  border-color: rgba(255, 255, 255, 0.68);
  background: rgba(9, 35, 62, 0.78);
  outline: none;
  transform: translateY(-1px);
}

.trip-opportunity-cover-source__label,
.trip-opportunity-cover-source__action {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.trip-opportunity-cover-source__label {
  opacity: 0.9;
}

.trip-opportunity-cover-source__action {
  flex: 0 0 auto;
  font-size: 11px;
}

.trip-opportunity-content {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
}

.trip-opportunity-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: flex-start;
}

.trip-opportunity-title {
  margin: 0;
  color: var(--trip-primary-strong);
  font-size: 21px;
  line-height: 1.25;
  font-weight: 800;
  display: inline;
}

/* 主要信息：行程 / 地区名 */
.trip-opportunity-title__main {
  font-size: 21px;
  font-weight: 800;
  color: var(--trip-primary-strong);
}

/* 次要信息：天晚数 */
.trip-opportunity-title__duration {
  margin-left: 8px;
  font-size: 13px;
  font-weight: 600;
  color: var(--trip-text-soft);
  white-space: nowrap;
}

.trip-opportunity-title__duration::before {
  content: "·";
  margin-right: 8px;
  color: color-mix(in srgb, var(--trip-text-soft) 55%, transparent);
  font-weight: 600;
}

.trip-opportunity-meta,
.trip-offer-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  min-width: 0;
  color: var(--trip-text-soft);
  font-size: 12px;
  line-height: 1.45;
}

.trip-opportunity-country,
.trip-opportunity-date-range,
.trip-opportunity-provider {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 0 9px;
  border-radius: 999px;
  white-space: nowrap;
  word-break: keep-all;
  cursor: default;
}

/* 主要信息：起止日 */
.trip-opportunity-date-range {
  min-height: 27px;
  border: 1px solid color-mix(in srgb, var(--bt-color-deep-ocean, #0d47a1) 24%, transparent);
  background: color-mix(in srgb, var(--bt-color-deep-ocean, #0d47a1) 13%, transparent);
  color: var(--trip-primary-strong);
  font-size: 12.5px;
  font-weight: 820;
}

/* 次要信息：国家 / 船公司 */
.trip-opportunity-country,
.trip-opportunity-provider {
  min-height: 23px;
  padding: 0 8px;
  border: 1px solid color-mix(in srgb, var(--bt-color-deep-ocean, #0d47a1) 7%, transparent);
  background: rgba(255, 255, 255, 0.6);
  color: var(--trip-text-soft);
  font-size: 11px;
  font-weight: 600;
}

.trip-opportunity-price-list {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
  min-width: max-content;
}

.trip-opportunity-price-group {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  min-height: 28px;
  padding: 0 10px;
  border-radius: 999px;
  background: rgba(212, 122, 35, 0.1);
  color: #b8661c;
  font-size: 13px;
  font-weight: 850;
  line-height: 1;
  white-space: nowrap;
  word-break: keep-all;
  cursor: default;
}

.trip-opportunity-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.trip-opportunity-stat,
.trip-offer-source {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 0 9px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--bt-color-deep-ocean, #0d47a1) 5.5%, transparent);
  color: #60758d;
  font-size: 12px;
  font-weight: 750;
  line-height: 1;
  cursor: default;
}

.trip-offer-full-date,
.trip-offer-availability {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-height: 24px;
  padding: 0 8px;
  border-radius: 999px;
  white-space: nowrap;
  word-break: keep-all;
  cursor: default;
}

.trip-offer-full-date {
  border: 1px solid color-mix(in srgb, var(--bt-color-deep-ocean, #0d47a1) 10%, transparent);
  background: color-mix(in srgb, var(--bt-color-deep-ocean, #0d47a1) 4.5%, transparent);
  color: var(--trip-primary-strong);
  font-weight: 760;
}

.trip-offer-availability {
  background: rgba(24, 119, 96, 0.075);
  color: #55716f;
  font-weight: 720;
}

.trip-offer-availability strong {
  color: #1f7669;
  font-size: 13px;
  font-weight: 900;
  line-height: 1;
}

.trip-opportunity-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.trip-catalog-action {
  gap: 8px;
  position: relative;
  white-space: nowrap;
  transition:
    background-color 160ms ease,
    border-color 160ms ease,
    box-shadow 160ms ease,
    color 160ms ease,
    transform 160ms ease;
}

.trip-catalog-action:hover:not(:disabled),
.trip-catalog-action:focus-visible:not(:disabled) {
  transform: translateY(-1px);
  outline: none;
}

.trip-catalog-action-intro::after {
  content: "";
  width: 7px;
  height: 7px;
  margin-left: 1px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg);
  opacity: 0.86;
}

.trip-catalog-action-compare {
  border-color: color-mix(in srgb, var(--bt-color-deep-ocean, #0d47a1) 16%, transparent);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(244, 249, 255, 0.92));
  color: var(--trip-primary-strong);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.86);
}

.trip-catalog-action-compare::before {
  content: "";
  flex: 0 0 auto;
  width: 14px;
  height: 14px;
  border: 1.5px solid currentColor;
  border-radius: 5px;
  opacity: 0.72;
  background:
    linear-gradient(90deg, transparent 0 45%, currentColor 45% 55%, transparent 55% 100%),
    linear-gradient(180deg, transparent 0 45%, currentColor 45% 55%, transparent 55% 100%);
  background-size: 100% 100%, 100% 100%;
}

.trip-catalog-action-compare:hover:not(:disabled) {
  background:
    linear-gradient(180deg, rgba(250, 253, 255, 1), rgba(235, 245, 255, 0.96));
}

.trip-catalog-action-route-filter,
.trip-catalog-action-route-intro {
  min-height: 38px;
  padding: 0 12px;
  border-color: color-mix(in srgb, var(--bt-color-deep-ocean, #0d47a1) 12%, transparent);
  background: rgba(255, 255, 255, 0.68);
  color: #5c7289;
  font-size: 12px;
  font-weight: 760;
  box-shadow: none;
}

.trip-catalog-action-route-filter::before {
  content: "";
  width: 10px;
  height: 10px;
  border: 2px solid currentColor;
  border-radius: 999px;
  opacity: 0.58;
  box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.82);
}

.trip-catalog-action-route-intro::after {
  content: "";
  width: 6px;
  height: 6px;
  margin-left: 1px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg);
  opacity: 0.72;
}

.trip-catalog-action-route-filter:hover:not(:disabled),
.trip-catalog-action-route-intro:hover:not(:disabled) {
  border-color: color-mix(in srgb, var(--bt-color-deep-ocean, #0d47a1) 18%, transparent);
  background: rgba(248, 252, 255, 0.94);
  color: var(--trip-primary-strong);
}

.trip-offer-panel {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 0;
  padding: 12px;
  border: 1px solid rgba(18, 92, 157, 0.1);
  border-radius: 16px;
  background: rgba(248, 252, 255, 0.78);
}

.trip-offer-panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  color: var(--trip-primary-strong);
  font-size: 13px;
}

.trip-offer-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.trip-offer-row {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr) auto auto;
  gap: 12px;
  align-items: center;
  padding: 10px;
  border: 1px solid color-mix(in srgb, var(--bt-color-deep-ocean, #0d47a1) 8%, transparent);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.86);
}

.trip-offer-date {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
  color: var(--trip-primary-strong);
}

.trip-offer-date strong {
  font-size: 13px;
  line-height: 1.25;
}

.trip-offer-date span {
  color: var(--trip-text-soft);
  font-size: 11px;
  font-weight: 750;
}

.trip-offer-main {
  min-width: 0;
}

.trip-offer-title {
  overflow: hidden;
  color: var(--trip-primary-strong);
  font-size: 14px;
  font-weight: 800;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.trip-offer-price {
  color: #b8661c;
  font-size: 13px;
  font-weight: 850;
  white-space: nowrap;
  word-break: keep-all;
}

.trip-offer-action {
  white-space: nowrap;
}

/* offer 行内「行程介绍 + 立即预订」并排（2026-06-24 catalog 直达下单）。 */
.trip-offer-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  justify-content: flex-end;
}

.trip-catalog-action-book {
  white-space: nowrap;
}
}

@layer public.responsive {
@media (max-width: 720px) {
  .trip-card-bed-breakdown {
    max-width: 100%;
  }
}

@media (max-width: 1180px) {
  .public-trip-hero {
    gap: 16px;
  }

  .trip-filter-primary {
    grid-template-columns:
      minmax(var(--trip-catalog-filter-primary-country-min-compact), 0.82fr)
      minmax(var(--trip-catalog-filter-primary-route-min-compact), 0.9fr)
      minmax(var(--trip-catalog-filter-primary-duration-min-compact), 0.98fr)
      auto;
  }

  .trip-filter-grid-advanced {
    grid-template-columns: repeat(var(--trip-catalog-filter-advanced-columns), minmax(0, 1fr));
  }

  .trip-partner-card {
    flex-basis: 250px;
    align-items: stretch;
  }

  .trip-partner-actions {
    justify-content: flex-start;
  }

  .trip-opportunity-top {
    grid-template-columns: 164px minmax(0, 1fr);
  }

  .trip-offer-row {
    grid-template-columns: 104px minmax(0, 1fr) auto;
  }

  .trip-offer-action,
  .trip-offer-actions {
    grid-column: 2 / -1;
    justify-self: flex-start;
    justify-content: flex-start;
  }

  .trip-card-starting-price {
    flex: 1 1 100%;
    align-items: flex-start;
  }
}

@media (max-width: 760px) {
  .public-trip-hero {
    padding: 4px 2px 0;
  }

  .trip-filter-panel {
    padding: 12px;
  }

  .public-trip-stats {
    gap: 8px;
  }

  .trip-results-heading {
    flex-direction: column;
    align-items: stretch;
  }

  .trip-filter-primary {
    grid-template-columns: repeat(var(--trip-catalog-filter-mobile-columns), minmax(0, 1fr));
    gap: 8px;
  }

  .trip-filter-grid-advanced {
    grid-template-columns: 1fr;
  }

  .trip-filter-primary-action {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
  }

  .trip-filter-label {
    font-size: 10px;
    line-height: 1.25;
  }

  .trip-filter-select,
  .trip-filter-input {
    min-width: 0;
    min-height: 38px;
    padding: 0 7px;
    font-size: 12px;
  }

  .trip-filter-primary-action .trip-filter-reset,
  .trip-filter-primary-action .trip-filter-advanced-toggle {
    width: 100%;
  }

  .trip-partner-intro {
    flex-direction: column;
    align-items: stretch;
  }

  .trip-partner-section {
    padding: 12px;
  }

  .trip-partner-onboarding-link {
    align-self: flex-start;
  }

  .trip-channel-partner-heading {
    flex-direction: column;
    gap: 6px;
  }

  .trip-partner-card {
    flex-basis: min(100%, 240px);
    padding: 12px;
  }

  .trip-partner-company-copy strong {
    font-size: 15px;
  }

  .trip-partner-product-list {
    gap: 6px;
  }

  .trip-year-toggle,
  .trip-month-toggle {
    padding-bottom: 12px;
  }

  .trip-month-name {
    font-size: 17px;
  }

  .trip-year-body {
    padding-top: 14px;
  }

  .trip-month-body {
    padding-top: 12px;
  }

  .trip-card {
    gap: 16px;
    padding: 16px;
  }

  .trip-opportunity-top {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .trip-opportunity-header {
    grid-template-columns: 1fr;
  }

  .trip-opportunity-price-list {
    align-items: flex-start;
    min-width: 0;
  }

  .trip-opportunity-media,
  .trip-opportunity-cover,
  .trip-opportunity-fallback {
    height: 176px;
  }

  .trip-offer-row {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .trip-offer-action {
    grid-column: auto;
    justify-self: stretch;
  }

  .trip-offer-actions {
    grid-column: auto;
    justify-self: stretch;
    justify-content: stretch;
  }

  .trip-offer-actions .trip-offer-action {
    flex: 1 1 0;
    justify-self: auto;
  }

  .trip-offer-title {
    white-space: normal;
  }

  .trip-card-side {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: center;
    gap: 8px;
  }

  .trip-card-side-sub {
    grid-column: 1 / -1;
  }

  .trip-card-main {
    padding: 14px;
  }

  .trip-card-main::before {
    display: none;
  }

  .trip-card-topline,
  .trip-card-heading-row {
    flex-direction: column;
    align-items: flex-start;
  }

  .trip-card-journey {
    gap: 12px;
  }

  .trip-card-port-city {
    font-size: 20px;
  }

  .trip-card-availability {
    width: 100%;
    justify-content: space-between;
  }

  .trip-card-starting-price {
    width: 100%;
    align-items: flex-start;
  }

  .trip-partner-actions {
    flex-wrap: wrap;
  }

  .trip-partner-actions .trip-btn {
    width: auto;
    flex: 1 1 112px;
    justify-content: center;
  }
}

@media (max-width: 640px) {
  .trip-catalog-page,
  .public-trip-shell {
    overflow-x: hidden;
  }

  .trip-filter-primary,
  .trip-filter-primary-action,
  .trip-card-side {
    grid-template-columns: 1fr;
  }

  .trip-filter-primary-action {
    grid-column: auto;
  }

  .trip-card {
    padding: 14px;
  }

  .trip-card-main {
    padding: 12px;
  }

  .trip-card-actions,
  .trip-partner-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .trip-card-actions .trip-btn,
  .trip-opportunity-actions .trip-btn,
  .trip-card-availability,
  .trip-card-starting-price,
  .trip-partner-actions .trip-btn,
  .trip-partner-onboarding-link {
    width: 100%;
  }

  .trip-partner-onboarding-link {
    align-self: stretch;
    justify-content: center;
  }
}
}

/* 刀① 航线优先目录（地区›航线›行程›年›月›班期）scoped rr-* 样式。 */
.rr-regions { display: flex; flex-direction: column; gap: 12px; }
.rr-region__head {
  display: flex; align-items: center; gap: 8px; width: 100%;
  background: none; border: none; cursor: pointer; padding: 8px 2px;
  font-size: 1rem; font-weight: 600; color: var(--bt-color-deep-ocean, #0f172a);
}
.rr-region__count { font-size: .82rem; font-weight: 400; color: var(--bt-color-text-muted, #64748b); }
.rr-region__chev { margin-left: auto; color: var(--bt-color-text-muted, #94a3b8); }
.rr-region__body { display: flex; flex-direction: column; gap: 12px; }
.rr-route {
  border: 1px solid var(--bt-color-bg-soft, #e2e8f0); border-radius: 16px;
  background: var(--bt-color-white, #fff); padding: 14px;
  box-shadow: 0 4px 16px rgba(15,23,42,.05);
}
.rr-route__head { display: flex; gap: 12px; align-items: flex-start; flex-wrap: wrap; }
.rr-route__cover { width: 104px; height: 78px; border-radius: 10px; overflow: hidden; flex: none; }
.rr-route__cover-img { width: 100%; height: 100%; object-fit: cover; }
.rr-route__cover-ph {
  width: 100%; height: 100%; display: flex; align-items: center; justify-content: center;
  background: var(--bt-color-background-soft, #ecfeff); color: var(--bt-color-primary, #0891b2); font-size: 22px;
}
.rr-route__title-wrap { flex: 1; min-width: 200px; }
.rr-route__title { margin: 0; font-size: 1.15rem; font-weight: 600; color: var(--bt-color-deep-ocean, #0f172a); }
.rr-route__stats { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 8px; }
.rr-route__stat { display: flex; flex-direction: column; }
.rr-route__stat-l { font-size: .7rem; color: var(--bt-color-text-muted, #94a3b8); }
.rr-route__stat-v { font-size: .82rem; font-weight: 600; color: var(--bt-color-text-primary, #0f172a); }
.rr-route__intro, .rr-trip__intro {
  display: inline-flex; align-items: center; gap: 5px; text-decoration: none;
  border: 1px solid var(--bt-color-bg-soft, #cbd5e1); border-radius: 8px;
  padding: 6px 12px; font-size: .8rem; color: var(--bt-color-deep-ocean, #0f172a);
  background: var(--bt-color-white, #fff); white-space: nowrap;
}
.rr-route__intro { align-self: flex-start; }
.rr-trip { border: 1px solid var(--bt-color-bg-soft, #eef2f6); border-radius: 12px; margin-top: 10px; overflow: hidden; }
.rr-trip__head {
  display: flex; align-items: center; gap: 8px; width: 100%; flex-wrap: wrap;
  background: var(--bt-color-background-soft, #f8fafc); border: none; cursor: pointer;
  padding: 11px 12px; text-align: left;
}
.rr-trip__name { font-size: .92rem; font-weight: 600; color: var(--bt-color-deep-ocean, #0f172a); }
.rr-trip__cnt { font-size: .8rem; color: var(--bt-color-text-muted, #64748b); }
.rr-trip__price { margin-left: auto; font-size: .8rem; font-weight: 600; padding: 4px 9px; border-radius: 8px; background: #FAEEDA; color: #633806; white-space: nowrap; }
.rr-trip__body { padding: 4px 12px 12px; }
.rr-trip__sub { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: .8rem; color: var(--bt-color-text-secondary, #475569); margin: 8px 0; }
.rr-trip__intro { padding: 3px 10px; font-size: .78rem; color: var(--bt-color-primary, #0891b2); border-color: var(--bt-color-primary, #22d3ee); }
.rr-year { border-top: 1px solid var(--bt-color-bg-soft, #eef2f6); }
.rr-year__head { display: flex; align-items: center; gap: 6px; width: 100%; background: none; border: none; cursor: pointer; padding: 8px 0 4px; font-size: .82rem; font-weight: 600; color: var(--bt-color-text-primary, #0f172a); text-align: left; }
.rr-year__count { margin-left: auto; font-weight: 400; color: var(--bt-color-text-muted, #94a3b8); }
.rr-month-label { font-size: .78rem; color: var(--bt-color-text-muted, #64748b); padding: 6px 0 2px; }
.rr-dep { display: flex; align-items: center; gap: 10px; padding: 7px 0; border-bottom: 1px solid var(--bt-color-bg-soft, #f1f5f9); flex-wrap: wrap; }
.rr-dep:last-child { border-bottom: none; }
.rr-dep__date { font-weight: 600; min-width: 120px; color: var(--bt-color-primary, #0891b2); text-decoration: none; }
.rr-dep__dur { font-size: .78rem; color: var(--bt-color-text-muted, #94a3b8); }
.rr-dep__av { font-size: .78rem; color: #3B6D11; margin-left: auto; white-space: nowrap; }
.rr-dep__book { border: 1px solid var(--bt-color-primary, #22d3ee); color: var(--bt-color-white, #fff); background: var(--bt-color-primary, #0891b2); border-radius: 8px; padding: 4px 14px; font-size: .8rem; font-weight: 600; text-decoration: none; white-space: nowrap; }
.rr-dep__book:hover { background: var(--bt-color-deep-ocean, #0e7490); }
.rr-chev { transition: transform .15s; }
.rr-regions .is-hidden { display: none; }

/* 刀ND 最近出发滑动带 rr-nd-*（catalog + storefront 顶部）。 */
.rr-nd { margin: 0 0 18px; }
.rr-nd__head { display: flex; align-items: baseline; gap: 10px; margin: 0 0 10px; flex-wrap: wrap; }
.rr-nd__h { font-size: 1rem; font-weight: 600; color: var(--bt-color-deep-ocean, #0f172a); }
.rr-nd__sub { font-size: .78rem; color: var(--bt-color-text-muted, #94a3b8); }
.rr-nd__strip { display: flex; gap: 10px; overflow-x: auto; padding: 2px 2px 10px; scroll-snap-type: x mandatory; }
.rr-nd__card { flex: 0 0 200px; scroll-snap-align: start; border: 1px solid var(--bt-color-bg-soft, #e2e8f0); border-radius: 12px; background: var(--bt-color-white, #fff); padding: 12px; display: flex; flex-direction: column; gap: 7px; }
.rr-nd__when { display: flex; flex-direction: column; gap: 1px; }
.rr-nd__days { font-size: .82rem; font-weight: 600; color: #993C1D; }
.rr-nd__days.is-soon { color: #A32D2D; }
.rr-nd__date { font-size: .76rem; color: var(--bt-color-text-secondary, #475569); }
.rr-nd__title { font-size: .85rem; font-weight: 600; line-height: 1.35; min-height: 36px; color: var(--bt-color-deep-ocean, #0f172a); text-decoration: none; }
.rr-nd__title:hover { color: var(--bt-color-primary, #0891b2); }
.rr-nd__line { font-size: .72rem; color: var(--bt-color-text-muted, #94a3b8); }
.rr-nd__more { align-self: flex-start; font-size: .72rem; background: var(--bt-color-background-soft, #ecfeff); color: var(--bt-color-primary, #0891b2); border-radius: 999px; padding: 2px 9px; text-decoration: none; }
.rr-nd__foot { display: flex; align-items: center; justify-content: space-between; margin-top: 2px; }
.rr-nd__price { font-size: .78rem; font-weight: 600; color: #633806; }
.rr-nd__av { font-size: .72rem; color: #3B6D11; }
.rr-nd__book { border: 1px solid var(--bt-color-primary, #22d3ee); color: var(--bt-color-white, #fff); background: var(--bt-color-primary, #0891b2); border-radius: 8px; padding: 5px 0; font-size: .8rem; font-weight: 600; text-align: center; text-decoration: none; }
.rr-nd__book:hover { background: var(--bt-color-deep-ocean, #0e7490); }
