@page {
  size: A4 portrait;
  margin: 12mm 11mm 14mm;
}

* {
  box-shadow: none !important;
  text-shadow: none !important;
  animation: none !important;
  transition: none !important;
}

html,
body {
  min-width: 0 !important;
  background: #fff !important;
  color: #17242d !important;
  font-family: "Avenir Next", Avenir, "Segoe UI", ui-sans-serif, system-ui, sans-serif !important;
  font-size: 9pt !important;
  line-height: 1.4 !important;
  print-color-adjust: exact;
  -webkit-print-color-adjust: exact;
}

a {
  color: inherit !important;
  text-decoration: none !important;
}

.skip-link,
.site-header,
.results-header-actions,
.mobile-menu-button,
.main-nav,
.header-actions,
.hero-actions,
.final-cta,
.site-footer nav,
.itinerary-actions,
.edit-search-button,
.filter-panel,
.results-toolbar,
.no-filter-results,
.price-alert-section,
.select-route-button,
.dialog-actions,
.toast-region,
.app-dialog,
dialog,
button,
.loading-progress,
.results-loading,
.results-empty {
  display: none !important;
}

.booking-progress,
.trip-utility-bar,
.floating-itinerary,
.route-details-actions,
.hotel-inclusion-toggle,
.route-hotel-option:not(.is-selected),
.review-dialog-actions {
  display: none !important;
}

.route-details-shell,
.route-details-layout,
.route-details-content {
  width: 100% !important;
  max-width: none !important;
  display: block !important;
  margin: 0 !important;
}

.route-details-heading {
  display: grid !important;
  grid-template-columns: 1fr auto !important;
  gap: 5mm !important;
  margin-bottom: 5mm !important;
}

.route-details-heading h1 {
  margin: 0 0 1.5mm !important;
  font-size: 22pt !important;
}

.route-details-heading p,
.route-details-meta,
.section-lede {
  font-size: 7pt !important;
}

.details-card {
  margin: 0 0 5mm !important;
  padding: 4mm !important;
  border: 0.25mm solid #c8d1cd !important;
  border-radius: 3mm !important;
  background: #fff !important;
  break-inside: auto;
}

.details-section-heading {
  margin-bottom: 3mm !important;
}

.details-section-heading h2 {
  font-size: 14pt !important;
}

.route-details-map {
  height: 72mm !important;
  border-radius: 3mm !important;
  background: #0a3c47 !important;
}

.route-details-stats {
  grid-template-columns: repeat(4, 1fr) !important;
  margin-top: 3mm !important;
}

.route-details-stats > div {
  padding: 2.5mm !important;
}

.route-details-stats dt,
.route-details-stats dd {
  font-size: 7pt !important;
}

.route-hotel-city {
  margin-bottom: 3mm !important;
  border: 0.25mm solid #c8d1cd !important;
  break-inside: avoid;
}

.route-hotel-city-header,
.route-hotel-body {
  padding: 3mm !important;
}

.route-hotel-option.is-selected {
  min-height: 0 !important;
  grid-template-columns: 24mm 1fr auto !important;
  padding: 2mm !important;
}

.route-hotel-option.is-selected img {
  width: 24mm !important;
  height: 18mm !important;
}

.results-header {
  width: 100% !important;
  min-height: 12mm !important;
  margin: 0 0 4mm !important;
  display: block !important;
  border-bottom: 0.35mm solid #c8d1cd;
}

.brand {
  display: inline-flex !important;
  align-items: center !important;
  gap: 2.5mm !important;
  color: #092a32 !important;
  font-size: 14pt !important;
  font-weight: 800 !important;
}

.brand-mark {
  width: 8mm !important;
  height: 8mm !important;
  color: #087f7b !important;
}

.results-shell {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

.trip-summary-bar {
  position: static !important;
  display: grid !important;
  grid-template-columns: 1.2fr 1fr !important;
  gap: 4mm !important;
  margin: 0 0 5mm !important;
  padding: 3.5mm !important;
  border: 0.25mm solid #c8d1cd !important;
  border-radius: 3mm !important;
  background: #f7f8f6 !important;
  break-inside: avoid;
}

.summary-route-icon {
  width: 8mm !important;
  height: 8mm !important;
  background: #e4f3f0 !important;
  color: #087f7b !important;
}

.trip-summary-main strong {
  font-size: 9pt !important;
  white-space: normal !important;
}

.trip-summary-meta {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
}

.trip-summary-meta > div {
  min-width: 0 !important;
  padding: 0 2.5mm !important;
}

.trip-summary-meta dt,
.trip-summary-main small {
  font-size: 6.5pt !important;
}

.trip-summary-meta dd {
  font-size: 7.5pt !important;
  white-space: normal !important;
}

.results-title-section {
  display: block !important;
  padding: 2mm 0 4mm !important;
  break-after: avoid;
}

.results-kicker {
  margin-bottom: 1.5mm !important;
  color: #087f7b !important;
  font-size: 7pt !important;
}

.results-title-section h1 {
  margin-bottom: 1.5mm !important;
  color: #092a32 !important;
  font-size: 25pt !important;
  line-height: 1.05 !important;
}

.results-title-section p {
  margin: 0 !important;
  color: #526779 !important;
  font-size: 8pt !important;
}

.fallback-notices {
  margin: 0 0 4mm !important;
}

.fallback-notice {
  padding: 2.5mm 3mm !important;
  border: 0.25mm solid #d6b777 !important;
  border-radius: 2mm !important;
  background: #fff7e7 !important;
  color: #65491d !important;
  font-size: 7pt !important;
  break-inside: avoid;
}

.route-hero-grid {
  display: grid !important;
  grid-template-columns: 1.42fr 0.78fr !important;
  gap: 4mm !important;
  align-items: stretch !important;
  break-inside: avoid;
}

.route-map-card,
.pricing-card {
  border-radius: 3mm !important;
  break-inside: avoid;
}

.route-map-card {
  overflow: hidden !important;
  background: #092a32 !important;
  color: #fff !important;
}

.map-card-topbar,
.map-card-footer {
  padding: 3mm 3.5mm !important;
}

.map-card-topbar strong {
  max-width: 130mm !important;
  color: #fff !important;
  font-size: 7.5pt !important;
  white-space: normal !important;
}

.mini-label {
  margin-bottom: 1mm !important;
  color: #087f7b !important;
  font-size: 6pt !important;
}

.mini-label.light {
  color: #9de2dc !important;
}

.map-scale,
.map-card-footer > span {
  color: rgb(255 255 255 / 0.72) !important;
  font-size: 6pt !important;
}

.route-map-visual,
#routeMapSvg {
  min-height: 67mm !important;
  height: 67mm !important;
}

.route-map-visual {
  background: #0a3038 !important;
}

.pricing-card {
  display: block !important;
  padding: 4mm !important;
  border: 0.25mm solid #c8d1cd !important;
  background: #fff !important;
}

.pricing-card-header {
  display: flex !important;
}

.price-total {
  padding: 3mm 0 !important;
  border-bottom: 0.25mm solid #dbe1de !important;
}

.price-total strong {
  color: #092a32 !important;
  font-size: 25pt !important;
}

.price-breakdown > div {
  padding: 1.6mm 0 !important;
  font-size: 7pt !important;
}

.price-metadata {
  margin: 1mm 0 2mm !important;
  font-size: 6pt !important;
}

.booking-links {
  display: grid !important;
  gap: 1mm !important;
  margin: 2mm 0 0 !important;
  padding-top: 2mm !important;
  border-top: 0.25mm solid #dbe1de;
}

.booking-links a,
.itinerary-link {
  display: block !important;
  width: auto !important;
  color: #056965 !important;
  font-size: 6.5pt !important;
  font-weight: 700 !important;
  text-decoration: underline !important;
}

.booking-links a[href]::after,
.itinerary-link[href]::after {
  content: " — " attr(href);
  color: #526779;
  font-size: 5.8pt;
  font-weight: 500;
  overflow-wrap: anywhere;
}

.results-workspace {
  display: block !important;
  margin-top: 6mm !important;
}

.route-results-column {
  display: block !important;
}

.route-option-list {
  display: block !important;
}

.route-option-card {
  display: none !important;
}

.route-option-card.is-selected {
  display: block !important;
  padding: 4mm !important;
  border: 0.4mm solid #087f7b !important;
  border-radius: 3mm !important;
  background: #fff !important;
  break-inside: avoid;
}

.route-card-header {
  margin-bottom: 2.5mm !important;
}

.route-rank {
  margin-bottom: 1mm !important;
  color: #087f7b !important;
  font-size: 6pt !important;
}

.route-path {
  font-size: 13pt !important;
}

.route-card-price strong {
  font-size: 16pt !important;
}

.route-stats {
  grid-template-columns: repeat(4, 1fr) !important;
  border-color: #dbe1de !important;
}

.route-stat {
  padding: 2mm !important;
}

.route-leg-strip {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 1.5mm !important;
  margin-top: 2.5mm !important;
  overflow: visible !important;
}

.route-leg {
  min-width: 0 !important;
  padding: 1.5mm 2mm !important;
  border: 0.2mm solid #dbe1de;
  background: #f7f8f6 !important;
}

.route-card-footer {
  grid-template-columns: 1fr auto !important;
  margin-top: 2.5mm !important;
}

.route-card-footer .booking-status {
  justify-self: end;
}

.itinerary-section,
.accommodation-section {
  margin-top: 8mm !important;
}

.section-heading-row,
.section-heading-row.compact-heading {
  display: flex !important;
  align-items: flex-end !important;
  justify-content: space-between !important;
  margin-bottom: 4mm !important;
  break-after: avoid;
}

.compact-heading h2 {
  color: #092a32 !important;
  font-size: 20pt !important;
}

.section-heading-row > p {
  max-width: 70mm !important;
  margin: 0 !important;
  font-size: 7pt !important;
  text-align: right;
}

.itinerary-timeline {
  gap: 2.5mm !important;
}

.itinerary-timeline::before {
  left: 6mm !important;
}

.itinerary-day {
  grid-template-columns: 13mm 1fr !important;
  gap: 2.5mm !important;
  break-inside: avoid;
}

.timeline-marker {
  width: 12mm !important;
  min-height: 12mm !important;
  padding: 1mm !important;
  border: 1mm solid #fff !important;
  font-size: 5.5pt !important;
}

.timeline-content {
  padding: 3mm 3.5mm !important;
  border: 0.25mm solid #dbe1de !important;
  border-radius: 2.5mm !important;
}

.day-header h3 {
  font-size: 11pt !important;
}

.day-meta,
.stay-note p,
.leg-detail dt,
.leg-detail dd {
  font-size: 6.5pt !important;
}

.stay-note {
  margin-top: 2mm !important;
  padding: 2mm !important;
  background: #fff0eb !important;
}

.results-footer {
  width: 100% !important;
  min-height: 0 !important;
  margin-top: 8mm !important;
  padding-top: 3mm !important;
  display: flex !important;
  justify-content: space-between !important;
  border-top: 0.25mm solid #c8d1cd;
  color: #526779 !important;
  font-size: 6.5pt !important;
}

.results-footer .brand {
  font-size: 9pt !important;
}

.results-footer a:last-child {
  display: none !important;
}

.home-page .hero,
.home-page .planner-section,
.home-page .offers-section,
.home-page .how-section,
.home-page .travel-options-section,
.home-page .trust-section,
.home-page .faq-section {
  break-inside: avoid;
}

h1,
h2,
h3,
h4 {
  break-after: avoid;
}

p,
li,
dt,
dd {
  orphans: 3;
  widows: 3;
}
