/* Responsive sizing for the active questionnaire flow. */
.builder.is-complete .builder-step-intro { display: none; }
.planner.is-step-flow { min-height: 0; }
.planner.is-step-flow .planner-workspace,
.planner.is-step-flow .interview,
.planner.is-step-flow .journey-steps,
.planner.is-step-flow .journey-step.is-open,
.planner.is-step-flow .step-panel:not([hidden]) { min-height: 0; }
.planner.is-step-flow .step-panel-content { justify-content: space-evenly; overflow: visible; }
.planner.is-step-flow .step-actions { z-index: 2; }
.planner.is-step-flow .step-two-options { flex: 0 1 auto; }
.planner.is-step-flow .step-two-options > div { overflow: visible; }
.planner.is-step-flow .step-two-options .stay-card,
.planner.is-step-flow .step-two-options .experience-card { flex-basis: clamp(145px, 17vw, 205px); }
.planner.is-step-flow .step-two-options .stay-card h3,
.planner.is-step-flow .step-two-options .experience-title { font-size: 10px; }
.planner.is-step-flow .step-two-options .stay-card p,
.planner.is-step-flow .step-two-options .experience-description,
.planner.is-step-flow .step-two-options .card-details { font-size: 9px; }
.planner.is-step-flow .step-two-options .stay-tags span { font-size: 8px; }
.planner.is-step-flow .step-two-options .card-choice { min-height: 28px; padding: 4px; font-size: 8px; }
.planner.is-step-flow .step-two-options .more-options-card__title { font-size: 11px; }
.planner.is-step-flow .step-two-options .more-options-card__action { min-height: 30px; font-size: 9px; }
.planner.is-step-flow .step-two-options .experience-price,
.planner.is-step-flow .step-two-options .service-quantity { font-size: 9px; }
.planner.is-step-flow .vibe-level-options label > span,
.planner.is-step-flow .vibe-choice-group .segmented label > span,
.planner.is-step-flow .origin-options label span,
.planner.is-step-flow .transport-options label > span { font-size: 10px; }
.planner.is-step-flow .vibe-level-options input:checked + span,
.planner.is-step-flow .vibe-choice-group .segmented input:checked + span { color: #111816; }
.planner.is-step-flow .vibe-level-options input:checked + span::after,
.planner.is-step-flow .vibe-choice-group .segmented input:checked + span::after { content: none; }
.planner.is-step-flow .vibe-toggle-group .toggle-row strong,
.planner.is-step-flow .transfer-together strong,
.planner.is-step-flow .transfer-vehicle-option strong { font-size: 10px; }
.planner.is-step-flow .vibe-toggle-group .toggle-row small,
.planner.is-step-flow .transport-options small,
.planner.is-step-flow .transfer-chips label,
.planner.is-step-flow .transfer-type-filters button,
.planner.is-step-flow .transfer-together small,
.planner.is-step-flow .transfer-vehicle-option small,
.planner.is-step-flow .transfer-vehicle-option b { font-size: 9px; }

@media (max-width: 640px) {
  .planner.is-step-flow { padding: max(10px, env(safe-area-inset-top)) 10px max(8px, env(safe-area-inset-bottom)); }
  .planner.is-step-flow .planner-workspace { gap: 5px; }
  .planner.is-step-flow .planner-overview h2 { font-size: clamp(20px, 5.8vw, 25px); }
  .planner.is-step-flow .planner-overview > p:not(.mini-label) { display: -webkit-box; font-size: 9px; line-height: 1.35; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
  .planner.is-step-flow .builder { gap: 5px; }
  .planner.is-step-flow .builder-step-intro .mini-label { font-size: 8px; }
  .planner.is-step-flow .builder-step-intro h2 { font-size: clamp(19px, 5.3vw, 23px); }
  .planner.is-step-flow .builder-step-intro .panel-description { font-size: 10px; line-height: 1.35; }
  .planner.is-step-flow .step-panel-content { gap: 5px; overflow: visible; }
  .planner.is-step-flow .step-actions { min-height: 54px; }
  .planner.is-step-flow .step-actions .button { min-height: 42px; font-size: 11px; }
  .planner.is-step-flow .date-inputs label,
  .planner.is-step-flow .vibe-toggle-group .toggle-row strong,
  .planner.is-step-flow .children-option { font-size: 9px; }
  .planner.is-step-flow .date-inputs input { min-height: 40px; font-size: 11px; }
  .planner.is-step-flow .trip-metric { min-height: 92px; }
  .planner.is-step-flow .trip-metric .small-label { font-size: 9px; }
  .planner.is-step-flow .group-note { min-height: 38px; font-size: 9px; }
  .planner.is-step-flow .vibe-level-field legend,
  .planner.is-step-flow .vibe-choice-group legend,
  .planner.is-step-flow .step-two-options .section-heading h2 { font-size: 10px; }
  .planner.is-step-flow .vibe-level-options label > span,
  .planner.is-step-flow .vibe-choice-group .segmented label > span { min-height: 35px; font-size: 9px; }
  .planner.is-step-flow .vibe-toggle-group .toggle-row { min-height: 32px; }
  .planner.is-step-flow .vibe-toggle-group .toggle-row small,
  .planner.is-step-flow .food-options label span { font-size: 8px; }
  .planner.is-step-flow .step-two-options .section-heading .eyebrow,
  .planner.is-step-flow .step-two-options .result-note { font-size: 8px; }
  .planner.is-step-flow .step-two-options .stay-card,
  .planner.is-step-flow .step-two-options .experience-card { flex-basis: 150px; }
  .planner.is-step-flow .step-two-options .stay-card > img { height: 42px; }
  .planner.is-step-flow .step-two-options .experience-art { height: 30px; }
  .planner.is-step-flow .step-two-options .stay-card h3,
  .planner.is-step-flow .step-two-options .experience-title { font-size: 9px; }
  .planner.is-step-flow .step-two-options .stay-card p,
  .planner.is-step-flow .step-two-options .experience-description,
  .planner.is-step-flow .step-two-options .card-details { font-size: 8px; }
  .planner.is-step-flow .step-two-options .stay-tags span,
  .planner.is-step-flow .step-two-options .card-choice { font-size: 7px; }
  .planner.is-step-flow .step-two-options .experience-price,
  .planner.is-step-flow .step-two-options .service-quantity { font-size: 8px; }
  .planner.is-step-flow .origin-options { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .planner.is-step-flow .origin-options label span { min-height: 32px; font-size: 9px; }
  .planner.is-step-flow .ticket-route { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
  .planner.is-step-flow .route-stations > strong,
  .planner.is-step-flow .recommendation strong { font-size: 10px; }
  .planner.is-step-flow .recommendation small { font-size: 9px; }
  .planner.is-step-flow .transport-options label > span { min-height: 37px; font-size: 9px; }
  .planner.is-step-flow .transport-options small { font-size: 8px; }
  .planner.is-step-flow .transfer-picker { max-height: none; overflow: visible; }
  .planner.is-step-flow .transfer-chips label,
  .planner.is-step-flow .transfer-type-filters button { min-height: 27px; font-size: 8px; }
  .planner.is-step-flow .transfer-together strong,
  .planner.is-step-flow .plan-share-cta strong { font-size: 9px; }
  .planner.is-step-flow .transfer-together small,
  .planner.is-step-flow .transfer-vehicle-option small,
  .planner.is-step-flow .transfer-vehicle-option b,
  .planner.is-step-flow .plan-share-cta p { font-size: 8px; }
  .planner.is-step-flow .plan-share-cta .button { min-height: 32px; font-size: 8px; }
}

@media (max-height: 720px) {
  .planner.is-step-flow .planner-roadmap li { min-height: 37px; }
  .planner.is-step-flow .step-panel-content { gap: 5px; padding-block: 4px; }
  .planner.is-step-flow .trip-metric { min-height: 88px; }
  .planner.is-step-flow .step-two-options .stay-card > img { height: 36px; }
  .planner.is-step-flow .step-two-options .experience-art { height: 26px; }
}

/* Keep the route animation and the selected transport details on separate rows. */
.planner.is-step-flow #tripRoutePreview {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: stretch;
  gap: 8px;
}
.planner.is-step-flow #tripRoutePreview .route-stations { width: 100%; min-width: 0; margin: 0; }
.planner.is-step-flow #tripRoutePreview .route-track { min-width: 24px; }
.planner.is-step-flow #tripRoutePreview .recommendation { min-width: 0; }
.planner.is-step-flow #tripRoutePreview .recommendation > div { min-width: 0; }
.planner.is-step-flow #tripRoutePreview .recommendation strong,
.planner.is-step-flow #tripRoutePreview .recommendation small { overflow-wrap: anywhere; }
@media (max-height: 720px) and (max-width: 640px) {
  .planner.is-step-flow .planner-overview > p:not(.mini-label) { -webkit-line-clamp: 1; }
  .planner.is-step-flow .builder-step-intro .panel-description { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
  .planner.is-step-flow .step-panel-content { gap: 3px; padding-block: 2px; }
  .planner.is-step-flow .trip-metric { min-height: 78px; }
  .planner.is-step-flow .step-two-options .stay-card,
  .planner.is-step-flow .step-two-options .experience-card { flex-basis: 140px; }
}
