/* V2 funnels, shared Travel calendar and independent result panels. */
.calc-page .placeholder-header__inner { display: flex; }
.journey-paths { display: grid; grid-template-columns: 1.4fr 1fr; gap: 20px; margin-bottom: 32px; }
.journey-paths article { position: relative; overflow: hidden; min-height: 420px; border-radius: 18px; padding: 30px; }
.journey-paths h2 { font: 600 clamp(23px, 2.2vw, 32px)/1.2 var(--display); letter-spacing: -.06em; margin: 14px 0; }
.journey-paths p:not(.eyebrow) { font-size: 12px; line-height: 1.7; }
.journey-paths .eyebrow { font-size: 8px; letter-spacing: .08em; }
.path-budget { display: grid; grid-template-columns: minmax(0, 1fr) 210px; gap: 20px; color: white; background: #181b1a; border: 2px solid #181b1a; }
.path-budget { grid-template-rows: 1fr auto; }
.path-budget .eyebrow { color: #d6dbd8; }
.path-budget h2 span { display: inline-block; color: var(--red); margin-left: 12px; font-size: 36px; animation: star-turn 24s linear infinite; }
.path-budget p:not(.eyebrow) { color: #c8ceca; }
.path-copy { display: flex; height: 100%; flex-direction: column; align-items: flex-start; justify-content: flex-start; }
.path-budget .path-copy { grid-column: 1; grid-row: 1; }
.path-budget .budget-controls { grid-column: 2; grid-row: 1 / span 2; }
.budget-button { grid-column: 1; grid-row: 2; width: 100%; }
.path-request .request-button { margin-top: auto; }
.budget-controls { align-self: center; }
.budget-controls .budget-dial { width: 210px; height: 186px; margin: 0 auto 4px; }
.budget-controls .dial-value { top: 77px; }
.budget-controls .dial-value > span { color: white; font-size: 27px; }
.budget-controls .dial-value small, .budget-controls .dial-min, .budget-controls .dial-max { color: #c8ceca; font-size: 8px; }
.budget-controls .dial-track { stroke: #434944; }
.budget-controls .budget-presets { margin: 5px 0 0; justify-content: space-between; gap: 5px; }
.budget-controls .budget-presets button { min-width: 0; color: #d6dbd8; border-color: #667069; padding: 5px 10px; }
.budget-controls .budget-presets button[aria-pressed='true'] { color: #181b1a; background: var(--mint); border-color: var(--mint); }
.path-request { display: flex; height: 100%; flex-direction: column; align-items: flex-start; justify-content: flex-start; background: #deeee8; border: 2px solid #6f9385; }
.path-request p, .path-request h2 { position: relative; z-index: 1; }
.request-orbit { position: absolute; right: -8px; top: 16px; font: 150px/1 var(--display); color: #c3dfd4; transform: rotate(-12deg); }
.request-tags { display: flex; gap: 6px; flex-wrap: wrap; margin: 15px 0; }
.request-tags span { border: 1px solid #adc9bd; padding: 4px 9px; border-radius: 20px; font-size: 9px; background: #ffffff55; }
.request-button { background: #173e30; color: white; }
.request-button:hover { background: #0c2d20; }
.journey-paths article:has([aria-pressed='true']) { box-shadow: 0 5px 0 #111111; }
.step-nav { grid-template-columns: repeat(3, 1fr); }
.builder { grid-template-columns: minmax(390px, 1fr) minmax(0, 1.25fr); align-items: start; }
.trip-preview { position: sticky; top: 20px; }
.mountain-scene { flex: none; min-height: 370px; }
.interview { transition: background .3s, border-color .3s; }
.budget-mode .interview { background: #202522; color: #f9faf6; border-color: #202522; }
.budget-mode .interview .mini-label, .budget-mode .interview .small-label, .budget-mode .interview .panel-description, .budget-mode .interview .field-hint, .budget-mode .interview legend, .budget-mode .interview-footer > span { color: #c6d2c9; }
.choice-field legend strong { color: var(--black); font-weight: 700; }
.budget-mode .interview .choice-field legend strong { color: #f9faf6; }
.budget-mode .step-nav, .budget-mode .interview-footer { border-color: #475149; }
.budget-mode .step-nav button { color: #bdcac0; }
.budget-mode .step-nav button[aria-current='step'] { color: white; }
.budget-mode .step-nav button[aria-current='step'] span { color: #ff8e92; }
.budget-mode .back-button { border-color: #899a8d; }
.budget-mode .origin-options label span { border-color: #789081; }
.budget-mode .origin-options input:checked + span { background: var(--mint); border-color: var(--mint); color: #173e30; }
.budget-mode .group-note { color: #183e2d; }
.budget-mode .segmented, .budget-mode .level-options label span, .budget-mode .transport-options label span { color: #16231b; }
.budget-mode .level-options label span, .budget-mode .transport-options label span { background: #f1f6f2; }
.budget-mode .level-options input:checked + span, .budget-mode .transport-options input:checked + span { background: var(--mint); border-color: #76968a; }
.budget-mode .segmented input:checked + span { color: white; background: #173e30; }
.budget-mode .toggle-row small { color: #c6d2c9; }
.date-inputs { display: grid; grid-template-columns: 1fr 16px 1fr; align-items: center; gap: 8px; }
.date-inputs label { font-size: 10px; color: var(--ink-muted); }
.date-inputs input, .other-origin input { display: block; width: 100%; min-width: 0; padding: 10px 11px; margin-top: 4px; border: 1px solid #c4cec6; border-radius: 8px; background: white; color: #18231d; font-size: 12px; }
.date-inputs input { cursor: pointer; font-weight: 600; }
.budget-mode .date-inputs label { color: #c6d2c9; }
.date-field { margin-bottom: 19px; }
.other-origin { display: grid; grid-template-columns: 1.4fr 1fr; gap: 12px; margin-top: 12px; font-size: 10px; }
.other-origin label:has(input:focus-visible) { outline: none; }
.other-origin input:focus-visible { outline: none; box-shadow: none; border-color: #c4cec6; }
.trip-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 16px; }
.trip-metric { display: flex; min-width: 0; min-height: 122px; flex-direction: column; padding: 11px; border: 1px solid var(--line); border-radius: 10px; background: #fcfcf8; }
.trip-metric .small-label { display: flex; min-height: 22px; align-items: center; white-space: normal; font-size: 9px; line-height: 1.2; }
.metric-value-row { display: flex; min-height: 36px; flex: 1; align-items: center; justify-content: center; }
.trip-metric .people-selector { width: 100%; gap: 5px; margin: 0; justify-content: space-between; }
.trip-metric .people-value output, .trip-metric .compact-stepper output, .trip-metric .metric-value-single strong { font-family: var(--display); font-size: 24px; font-weight: 500; letter-spacing: -.06em; line-height: 1; }
.trip-metric .round-button, .trip-metric .compact-stepper button { width: 28px; height: 28px; font-size: 18px; }
.trip-metric .compact-stepper { gap: 6px; }
.trip-metric .metric-value-single strong span { color: var(--red); }
.trip-metric > .range { margin-top: auto; }
.origin-field { margin-top: 16px; }
.children-option { position: relative; display: flex; width: max-content; align-items: center; gap: 8px; margin-top: 9px; color: #34433a; font-size: 11px; font-weight: 600; cursor: pointer; }
.children-option input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.children-check { display: grid; width: 18px; height: 18px; place-items: center; border: 1px solid #aebbb0; border-radius: 5px; background: #fff; transition: background .18s, border-color .18s, transform .18s; }
.children-check::after { width: 8px; height: 4px; border-bottom: 2px solid #fff; border-left: 2px solid #fff; content: ''; opacity: 0; transform: translateY(-1px) rotate(-45deg); }
.children-option input:checked + .children-check { border-color: var(--red); background: var(--red); transform: scale(1.04); }
.children-option input:checked + .children-check::after { opacity: 1; }
.children-option input:focus-visible + .children-check { outline: 3px solid #ed1c2440; outline-offset: 2px; }
.trip-metric-ski .metric-value-ski { gap: 4px; }
.metric-ski-arrow { color: var(--red); font-size: 17px; line-height: 1; }
.budget-mode .trip-metric { color: #f9faf6; border-color: #526057; background: #303833; }
.budget-mode .trip-metric .small-label { color: #d0dbd3; }
.budget-mode .trip-metric .round-button, .budget-mode .trip-metric .compact-stepper button { color: #18231d; border-color: #edf2ec; background: #edf2ec; }
.budget-mode .trip-metric .round-button:hover:not(:disabled), .budget-mode .trip-metric .compact-stepper button:hover:not(:disabled) { color: #173e30; border-color: var(--mint); background: var(--mint); }
.budget-mode .trip-metric .range::-webkit-slider-runnable-track { background: #59645c; }
.budget-mode .trip-metric .range::-moz-range-track { background: #59645c; }
.budget-mode .trip-metric .range::-webkit-slider-thumb { border-color: #303833; }
.budget-mode .trip-metric .range::-moz-range-thumb { border-color: #303833; }
.budget-mode .children-option { color: #e0e8e2; }
.budget-mode .children-check { border-color: #89988d; background: #303833; }
.budget-mode .children-option input:checked + .children-check { border-color: var(--red); background: var(--red); }
.food-options { display: grid; grid-template-columns: 1fr 1.15fr 1fr; }
.food-options label span { height: 100%; display: flex; align-items: center; justify-content: center; text-align: center; white-space: normal; }
#liftRadius { margin-top: 10px; }
.air-datepicker { --adp-accent-color: #ed1c24; --adp-cell-background-color-selected: #ed1c24; --adp-cell-background-color-selected-hover: #bd1017; --adp-cell-background-color-in-range: #fce3e4; --adp-cell-background-color-in-range-hover: #f8c8ca; --adp-color: #111; font-family: var(--body); z-index: 25; }
.air-datepicker.-is-mobile- { z-index: 150; }
.air-datepicker-overlay { z-index: 149; }
.result-note { margin: -12px 0 20px; color: var(--ink-muted); font-size: 12px; }
.stay-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.stay-card { position: relative; display: flex; flex-direction: column; cursor: pointer; background: white; border: 2px solid #e3e5de; border-radius: 15px; overflow: hidden; transition: transform .25s, border .2s, box-shadow .2s; }
.stay-card:hover { transform: translateY(-5px); }
.stay-card:has(input:checked) { border-color: #173e30; box-shadow: 0 5px 0 #173e30; }
.stay-card img { width: 100%; height: 175px; object-fit: cover; background: var(--mint); }
.stay-content { padding: 20px; flex: 1; display: flex; flex-direction: column; }
.stay-card h3 { font-family: var(--display); font-size: 15px; letter-spacing: -.035em; margin-bottom: 8px; }
.stay-card p { font-size: 11px; color: var(--ink-muted); }
.stay-tags { display: flex; flex-wrap: wrap; gap: 5px; margin: 12px 0; }
.stay-tags span { border-radius: 5px; background: #eff3ec; padding: 4px 7px; font-size: 9px; }
.stay-price { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; padding-top: 15px; margin-top: auto; border-top: 1px solid var(--line); }
.stay-price strong { font-size: 23px; letter-spacing: -.05em; }
.stay-price small { display: block; color: var(--ink-muted); font-size: 9px; }
.stay-selection { border-radius: 20px; padding: 7px 12px; background: #e8eee9; color: #173e30; font-size: 10px; }
.stay-card:has(input:checked) .stay-selection { background: #173e30; color: white; }
.empty-state { border: 1px dashed #b7beb1; border-radius: 15px; padding: 30px; background: #edf1e8; }
.empty-state h3 { font-size: 18px; margin-bottom: 10px; }
.empty-state p { font-size: 12px; max-width: 700px; }
.empty-state .button { margin-top: 16px; }
.provider-cards { display: grid; gap: 8px; margin-top: 18px; }
.provider-card { padding: 12px; border: 1px solid #dce4dc; background: #eef5f0; border-radius: 8px; color: #163c2e; font-size: 11px; }
.provider-card strong { display: block; }
.provider-card p { font-size: 10px; margin-top: 4px; }
.budget-line[hidden] { display: none; }
.article-shell { max-width: 760px; margin: 80px auto; padding: 0 24px; }
.article-shell h1 { font-size: clamp(26px, 4vw, 44px); }
.article-shell p { margin: 20px 0; }
.article-back { display: inline-block; padding: 8px 0; border-bottom: 1px solid #8fa998; font-size: 12px; }
@media (max-width: 1100px) {
  .journey-paths { grid-template-columns: 1.3fr 1fr; }
  .path-budget { grid-template-columns: 1fr; grid-template-rows: auto 1fr auto; }
  .path-budget .path-copy { grid-column: 1; grid-row: 1; height: auto; }
  .path-budget .budget-controls { grid-column: 1; grid-row: 2; }
  .path-budget .budget-button { grid-column: 1; grid-row: 3; }
  .budget-controls { display: grid; grid-template-columns: 190px 1fr; align-items: center; gap: 0 15px; }
  .budget-controls .budget-dial { width: 180px; height: 159px; grid-row: span 2; }
  .budget-controls .dial-value { top: 65px; }
  .budget-controls .dial-value > span { font-size: 23px; }
  .journey-paths article { padding: 22px; }
  .builder { grid-template-columns: minmax(330px, 1fr) minmax(0, 1fr); }
  .stay-content { padding: 16px; }
}
@media (max-width: 800px) {
  .journey-paths { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .journey-paths article { height: 310px; min-height: 310px; padding: 14px; border-radius: 13px; }
  .journey-paths h2 { font-size: 20px; margin: 8px 0; }
  .journey-paths p:not(.eyebrow) { font-size: 9px; line-height: 1.4; }
  .journey-paths .eyebrow { font-size: 7px; }
  .path-budget { display: flex; flex-direction: column; gap: 0; }
  .path-budget .path-copy { height: auto; }
  .path-budget .path-copy, .path-budget .budget-controls, .path-budget .budget-button { flex: 0 0 auto; }
  .path-budget .budget-controls { order: 2; }
  .path-budget .budget-button { order: 3; margin-top: auto; }
  .budget-controls { display: flex; flex-direction: column; align-items: center; gap: 1px; }
  .budget-controls .budget-dial { width: 128px; height: 113px; }
  .budget-controls .dial-value { top: 45px; }
  .budget-controls .dial-value > span { font-size: 18px; }
  .budget-controls .dial-value small, .budget-controls .dial-min, .budget-controls .dial-max { font-size: 7px; }
  .budget-controls .budget-presets { display: none; }
  .path-budget h2 span { margin-left: 5px; font-size: 25px; }
  .budget-button, .request-button { width: 100%; min-height: 38px; padding: 9px 4px; font-size: 9px; gap: 5px; }
  .request-orbit { top: 24px; right: -18px; font-size: 90px; }
  .request-tags { gap: 3px; margin: 8px 0; }
  .request-tags span { padding: 3px 5px; font-size: 7px; }
  .builder { grid-template-columns: 1fr; }
  .trip-preview { position: static; }
  .stay-grid { grid-template-columns: 1fr; }
  .stay-card { display: grid; grid-template-columns: minmax(160px, .7fr) 1fr; }
  .stay-card img { height: 100%; min-height: 210px; }
  .event-date { margin-bottom: 18px; }
}
@media (max-width: 480px) {
  .journey-paths { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .journey-paths article { height: 310px; min-height: 310px; padding: 14px; border-radius: 13px; }
  .journey-paths h2 { font-size: 20px; margin: 8px 0; }
  .journey-paths p:not(.eyebrow) { font-size: 9px; line-height: 1.4; }
  .journey-paths .eyebrow { font-size: 7px; }
  .path-budget { grid-template-columns: 1fr; gap: 0; }
  .path-budget h2 span { margin-left: 5px; font-size: 25px; }
  .path-copy .button, .request-button { width: 100%; min-height: 38px; padding: 9px 4px; font-size: 9px; gap: 5px; }
  .request-orbit { top: 24px; right: -18px; font-size: 90px; }
  .request-tags { gap: 3px; margin: 8px 0; }
  .request-tags span { padding: 3px 5px; font-size: 7px; }
  .budget-controls { display: flex; flex-direction: column; align-items: center; gap: 1px; }
  .budget-controls .budget-dial { width: 128px; height: 113px; }
  .budget-controls .dial-value { top: 45px; }
  .budget-controls .dial-value > span { font-size: 18px; }
  .budget-controls .dial-value small, .budget-controls .dial-min, .budget-controls .dial-max { font-size: 7px; }
  .budget-controls .budget-presets { width: 100%; gap: 3px; margin-top: 1px; }
  .budget-controls .budget-presets button { padding: 4px 1px; font-size: 7px; }
  .stay-card { display: flex; }
  .stay-card img { min-height: 0; height: 175px; }
  .mountain-scene { min-height: 300px; }
  .builder, .interview, .trip-preview { width: 100%; }
}
@media (max-width: 640px) {
  .date-field { margin-bottom: 12px; }
  .origin-field { margin-top: 12px; }
  .other-origin { display: block; }
  .other-origin label { display: block; }
  .trip-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin-top: 12px; }
  .trip-metric { min-height: 116px; padding: 9px 7px; }
  .trip-metric .small-label { overflow: hidden; font-size: 8px; text-overflow: ellipsis; }
  .trip-metric .people-selector { gap: 3px; margin: 0; }
  .trip-metric .people-value output, .trip-metric .compact-stepper output, .trip-metric .metric-value-single strong { font-size: 20px; }
  .trip-metric .round-button, .trip-metric .compact-stepper button { width: 24px; height: 24px; font-size: 15px; }
  .trip-metric .range { height: 15px; }
  .trip-metric-people .range { margin-top: 1px; }
  .group-note { margin: 12px 0 16px; font-size: 10px; }
}
@media (prefers-reduced-motion: reduce) { .journey-paths *, .stay-card { animation: none !important; transition: none !important; } }

/* Planning choices span the page; the questionnaire and live result sit side by side. */
.journey-paths { width: 100%; max-width: 1240px; margin: 0 auto 20px; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.journey-paths article { min-height: 178px; height: 178px; padding: 18px; border-radius: 12px; }
.journey-paths h2 { font-size: clamp(20px, 2.2vw, 28px); margin: 8px 0; }
.journey-paths p:not(.eyebrow) { font-size: 10px; line-height: 1.45; }
.journey-paths .eyebrow { font-size: 7px; }
.path-budget { grid-template-columns: minmax(0, 1fr) 178px; grid-template-rows: 1fr auto; gap: 12px; }
.path-budget .budget-controls { align-self: center; }
.budget-controls .budget-dial { width: 166px; height: 147px; margin: 0 auto; }
.budget-controls .dial-value { top: 58px; }
.budget-controls .dial-value > span { font-size: 23px; }
.budget-controls .budget-presets { margin-top: 1px; }
.budget-controls .budget-presets button { padding: 4px 5px; font-size: 8px; }
.path-request .request-tags { margin: 8px 0; }
.path-request .request-button { margin-top: auto; }

.builder { display: grid; width: 100%; max-width: 1240px; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); gap: 20px; align-items: start; margin: 0 auto 34px; }
.interview { width: 100%; min-width: 0; margin: 0; border-radius: 16px; }
.builder-step-intro { width: 100%; margin: 0 auto 22px; }
.builder-step-intro .mini-label { margin-bottom: 8px; }
.builder-step-intro h2 { max-width: 760px; margin: 0 0 8px; font: 600 clamp(25px, 3vw, 38px)/1.2 var(--display); letter-spacing: -.06em; outline: none; }
.builder-step-intro .panel-description { max-width: 650px; font-size: 13px; }
.journey-steps { width: auto; margin: 0 20px 18px; }
.trip-preview { position: static; order: 0; width: 100%; max-width: none; min-width: 0; align-self: start; gap: 0; }
.trip-preview .live-summary { padding: 22px; }
.journey-step { border-top: 1px solid var(--line); }
.journey-step:last-child { border-bottom: 1px solid var(--line); }
.step-header { display: grid; width: 100%; grid-template-columns: 36px minmax(0, 1fr) 24px; gap: 10px; align-items: center; padding: 17px 0; color: var(--ink-muted); text-align: left; }
.step-header:hover { color: var(--black); }
.step-number { color: #8d9388; font: 600 10px/1 var(--body); letter-spacing: .08em; }
.step-header-copy { min-width: 0; }
.step-header-copy b { display: block; color: inherit; font-size: 13px; font-weight: 700; line-height: 1.25; }
.step-summary { display: block; overflow: hidden; margin-top: 4px; color: var(--ink-muted); font-size: 10px; font-weight: 400; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.step-header[aria-current='step'] { color: var(--black); }
.step-header[aria-current='step'] .step-number { color: var(--red-dark); }
.step-header[aria-current='step'] .step-summary { color: var(--red-dark); }
.step-chevron { color: var(--red); font-size: 20px; transition: transform .35s var(--ease-spring); }
.journey-step.is-open .step-chevron { transform: rotate(45deg); }
.step-panel { padding: 4px 0 28px; animation: accordion-drop .42s var(--ease-spring); }
.step-panel[hidden] { display: none; }
.step-panel:not([hidden]) { display: flex; flex-direction: column; }
.step-panel-content { flex: 1 1 auto; min-height: 0; overflow: visible; }
.step-panel > .step-actions { display: flex; flex: 0 0 auto; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 0 4px; margin-top: auto; border-top: 1px solid var(--line); }
.step-actions > span { color: var(--ink-muted); font-size: 10px; }
.step-actions .button { min-width: 150px; }
.vibe-level-field { margin-top: 10px; }
.vibe-level-field legend { margin-bottom: 6px; }
.vibe-level-options label > span { display: flex; min-height: 42px; align-items: center; justify-content: center; gap: 5px; padding: 7px 6px; font-size: 9px; line-height: 1.25; }
.vibe-level-options b { width: auto; flex: 0 0 auto; color: var(--red-dark); font-size: 14px; }
.vibe-level-options input:checked + span::after,
.vibe-choice-group .segmented input:checked + span::after { margin-left: 3px; content: '✓'; font-weight: 700; }
.vibe-choice-group { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; margin-top: 10px; }
.vibe-choice-group > *, .vibe-food-choice { min-width: 0; }
.vibe-choice-group .choice-field { margin-top: 0; }
.vibe-choice-group .segmented { padding: 4px; gap: 3px; }
.vibe-choice-group .segmented label { min-width: 0; }
.vibe-choice-group .segmented label > span { display: flex; min-height: 42px; align-items: center; justify-content: center; padding: 6px 5px; font-size: 9px; line-height: 1.25; }
.vibe-food-choice .field-hint { margin-top: 5px; font-size: 9px; line-height: 1.35; }
.vibe-toggle-group { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; margin-top: 12px; padding-top: 4px; border-top: 1px solid var(--line); }
.vibe-toggle-group .toggle-row { min-width: 0; min-height: 40px; margin: 0; padding: 10px 0; border: 0; border-bottom: 1px solid var(--line); }
.vibe-toggle-group .toggle-row strong { font-size: 11px; }
.vibe-toggle-group .toggle-row small { font-size: 9px; line-height: 1.35; }
.vibe-toggle-item #liftRadius { margin: 7px 0 9px; }
.vibe-toggle-item #liftRadius .small-label { font-size: 9px; }
.budget-mode .journey-step { border-color: #475149; }
.budget-mode .step-header { color: #bdcac0; }
.budget-mode .step-header:hover, .budget-mode .step-header[aria-current='step'] { color: #fff; }
.budget-mode .step-header .step-summary { color: #c6d2c9; }
.budget-mode .step-header[aria-current='step'] .step-summary { color: #ff8e92; }
.budget-mode .step-actions { border-color: #475149; }

@media (max-width: 800px) {
  .builder { grid-template-columns: 1fr; }
}

@keyframes accordion-drop {
  from { opacity: 0; transform: translateY(-8px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 640px) {
  .journey-paths { width: 100%; margin-bottom: 16px; padding: 0; gap: 6px; }
  .builder { width: 100%; grid-template-columns: 1fr; gap: 16px; }
  .trip-preview { position: static; }
  .journey-paths article { min-height: 184px; height: 184px; padding: 12px; border-radius: 10px; }
  .journey-paths h2 { font-size: 18px; }
  .journey-paths p:not(.eyebrow) { font-size: 8px; }
  .path-budget { display: grid; grid-template-columns: 1fr; grid-template-rows: auto 1fr auto; gap: 0; }
  .path-budget .path-copy, .path-budget .budget-controls, .path-budget .budget-button { grid-column: 1; }
  .path-budget .path-copy { grid-row: 1; }
  .path-budget .budget-controls { grid-row: 2; align-self: center; }
  .path-budget .budget-button { grid-row: 3; }
  .budget-controls .budget-dial { width: 105px; height: 93px; }
  .budget-controls .dial-value { top: 35px; }
  .budget-controls .dial-value > span { font-size: 17px; }
  .budget-controls .dial-value small, .budget-controls .dial-min, .budget-controls .dial-max { font-size: 6px; }
  .budget-controls .budget-presets { display: none; }
  .journey-paths .request-tags { gap: 3px; }
  .journey-paths .request-tags span { padding: 3px 5px; font-size: 7px; }
  .journey-paths .button { min-height: 31px; padding: 7px 5px; font-size: 8px; gap: 5px; }
  .builder-step-intro { margin-bottom: 15px; }
  .builder-step-intro h2 { font-size: clamp(23px, 6vw, 30px); }
  .builder-step-intro .panel-description { font-size: 12px; }
  .journey-steps { margin: 0 18px 16px; }
  .step-header { grid-template-columns: 28px minmax(0, 1fr) 20px; padding: 15px 0; }
  .step-header-copy b { font-size: 12px; }
  .step-summary { white-space: normal; }
  .step-panel { padding-top: 2px; }
  .step-actions .button { min-width: 0; }
  .vibe-choice-group { gap: 8px; }
  .vibe-level-options label > span { min-height: 48px; gap: 3px; padding: 5px 3px; font-size: 8px; }
  .vibe-level-options b { font-size: 12px; }
  .vibe-choice-group .segmented label > span { min-height: 48px; padding: 5px 3px; font-size: 8px; }
  .vibe-toggle-group .toggle-row { gap: 10px; }
  .vibe-toggle-group .toggle { flex: 0 0 39px; }
  .vibe-toggle-group .toggle-row small { font-size: 8px; }
}

@media (prefers-reduced-motion: reduce) {
  .step-panel { animation: none; }
  .step-chevron { transition: none; }
}

/* Keep the first questionnaire step in a compact vertical flow in the left column. */
@media (min-width: 1100px) {
  .step-panel[data-panel='0']:not([hidden]) { display: flex; }
  .step-panel[data-panel='0'] .date-inputs { gap: 7px; }
  .step-panel[data-panel='0'] .date-inputs input { min-height: 43px; }
  .step-panel[data-panel='0'] .trip-metric { min-height: 116px; padding: 10px 9px; }
  .step-panel[data-panel='0'] .trip-metric .small-label { font-size: 9px; }
}

/* Transfer chooser reuses the visual language of transfer/index.html without its booking footer. */
.transport-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.transfer-picker { margin-top: 18px; padding: 16px; border: 1px solid #d8e0d7; border-radius: 12px; background: #f7faf5; animation: accordion-drop .35s var(--ease-spring); }
.transfer-picker__head { display: flex; align-items: end; justify-content: space-between; gap: 12px; padding-bottom: 12px; border-bottom: 1px solid #d8e0d7; }
.transfer-picker__head strong { display: block; color: #173c2e; font-size: 13px; }
.transfer-pickup { margin-top: 12px; }
.transfer-pickup legend, .transfer-vehicles legend { display: block; margin-bottom: 7px; color: var(--ink-muted); font-size: 10px; font-weight: 700; }
.transfer-chips, .transfer-type-filters { display: flex; flex-wrap: wrap; gap: 6px; }
.transfer-chips label, .transfer-type-filters button { min-height: 31px; padding: 7px 11px; border: 1px solid #cdd6ce; border-radius: 999px; background: var(--white); color: #4b5f53; font-size: 10px; }
.transfer-chips input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.transfer-chips input:checked + span { color: var(--white); }
.transfer-chips label:has(input:checked) { border-color: var(--black); background: var(--black); color: var(--white); }
.transfer-together { display: flex; align-items: center; gap: 10px; margin: 14px 0; padding: 12px; border: 2px solid var(--red); border-radius: 10px; color: var(--white); background: #19090a; box-shadow: 0 7px 16px #ed1c241f; }
.transfer-together input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.transfer-together > span:nth-of-type(2) { display: flex; min-width: 0; flex: 1; flex-direction: column; gap: 2px; }
.transfer-together strong { font-size: 11px; }
.transfer-together small { color: #ffffffad; font-size: 9px; }
.transfer-together > b { padding: 6px 9px; border-radius: 999px; color: var(--white); background: var(--red); font-size: 8px; text-transform: uppercase; }
.transfer-check { width: 22px; height: 22px; flex: 0 0 auto; border: 2px solid #ffffffb3; border-radius: 6px; }
.transfer-together input:checked + .transfer-check { border-color: var(--red); background: var(--red); box-shadow: inset 0 0 0 4px var(--white); }
.transfer-together input:focus-visible + .transfer-check { outline: 3px solid #ed1c2438; outline-offset: 2px; }
.transfer-vehicles { margin: 0; }
.transfer-type-filters { margin-bottom: 8px; }
.transfer-type-filters button { min-height: 29px; cursor: pointer; font-size: 9px; }
.transfer-type-filters button:hover, .transfer-type-filters button[aria-pressed='true'] { border-color: var(--red); color: var(--white); background: var(--red); }
.transfer-vehicle-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.transfer-vehicle-option { position: relative; min-width: 0; padding: 10px; border: 1px solid #d8e0d7; background: var(--white); cursor: pointer; transition: border-color .2s, background .2s, transform .2s; }
.transfer-vehicle-option:hover, .transfer-vehicle-option.is-selected { border-color: var(--red); background: #fff7f5; transform: translateY(-2px); }
.transfer-vehicle-option[hidden] { display: none; }
.transfer-vehicle-option input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.transfer-vehicle-option input:focus-visible + span { outline: 2px solid var(--red); outline-offset: 2px; }
.transfer-vehicle-option span { display: flex; min-height: 82px; flex-direction: column; gap: 4px; }
.transfer-vehicle-option strong { color: var(--black); font-size: 11px; }
.transfer-vehicle-option small { color: var(--ink-muted); font-size: 9px; line-height: 1.3; }
.transfer-vehicle-option b { margin-top: auto; color: var(--red); font-size: 10px; }

@media (max-width: 640px) {
  .transport-options { grid-template-columns: 1fr; }
  .transfer-picker { padding: 12px; }
  .transfer-picker__head { align-items: start; flex-direction: column; gap: 4px; }
  .transfer-together { align-items: start; }
  .transfer-together > b { margin-left: auto; }
  .transfer-vehicle-options { grid-template-columns: 1fr; }
  .transfer-vehicle-option span { min-height: 0; }
}

/* Balanced entry paths: request left, budget right, complete cards and matching CTAs. */
.journey-paths { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-areas: 'request budget'; align-items: stretch; }
.journey-paths article { height: auto; min-height: 310px; min-width: 0; align-self: stretch; }
.path-request { grid-area: request; height: auto; }
.path-budget { grid-area: budget; grid-template-rows: minmax(0, 1fr) auto; }
.path-budget .budget-controls { grid-column: 2; grid-row: 1; align-self: center; }
.path-budget .budget-button { grid-column: 1 / -1; grid-row: 2; width: 100%; }
.path-request .request-button { width: 100%; margin-top: auto; }
.journey-paths .button { width: 100%; height: 48px; min-height: 48px; justify-content: center; gap: 10px; padding: 10px 14px; border: 0; border-radius: 8px; color: var(--white); background: var(--red); font-size: 12px; line-height: 1.2; text-align: center; }
.journey-paths .button:hover { background: var(--red-dark); }

@media (max-width: 1100px) {
  .journey-paths article { min-height: 420px; }
  .path-budget { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto 1fr auto; gap: 10px; }
  .path-budget .path-copy { grid-column: 1; grid-row: 1; height: auto; }
  .path-budget .budget-controls { grid-column: 1; grid-row: 2; }
  .path-budget .budget-button { grid-column: 1; grid-row: 3; }
}

@media (max-width: 800px) {
  .path-budget .budget-presets { display: flex; }
}

@media (max-width: 640px) {
  .journey-paths article { height: auto; min-height: 350px; padding: 12px; }
  .path-budget { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto 1fr auto; gap: 8px; }
  .path-budget .budget-controls { grid-column: 1; grid-row: 2; }
  .path-budget .budget-button { grid-column: 1; grid-row: 3; }
  .journey-paths .button { height: 46px; min-height: 46px; gap: 4px; padding: 7px 4px; font-size: 8px; }
  .path-budget .budget-presets { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 3px; }
  .path-budget .budget-presets button { min-width: 0; padding: 4px 1px; font-size: 7px; }
}

/* The shared result panel is removed; keep the questionnaire as the single centered focal point. */
body.calc-page { position: relative; isolation: isolate; background: #fff; --ride-logo-ink: #111; --ride-logo-opacity: .13; }
.calc-page.budget-mode { --ride-logo-ink: #ed1c24; --ride-logo-opacity: .17; }
.calc-page::before { position: fixed; z-index: -1; inset: 0; background-color: var(--ride-logo-ink); opacity: var(--ride-logo-opacity); -webkit-mask-image: url("../../shared/images/placeholder.svg"); -webkit-mask-repeat: repeat; -webkit-mask-size: 132px 88px; mask-image: url("../../shared/images/placeholder.svg"); mask-mode: luminance; mask-repeat: repeat; mask-size: 132px 88px; content: ''; pointer-events: none; }
.builder { display: block; width: 100%; max-width: 1120px; margin: 0 auto 34px; }
.interview { width: 100%; min-width: 0; margin: 0; }

@media (max-width: 640px) {
  .calc-footer { padding-bottom: 36px; }
  .toast { bottom: 24px; }
  .money-overview .eyebrow, .money-overview h2 { padding-right: 52px; }
}
