/* Phone layouts: readable forms and four contact links in one row. */
@media (max-width: 760px) {
  html { scroll-padding-top: 190px; }
  .journey-navigation { top: 74px; }
  #journey-steps button { min-height: 44px; }
  .input-grid > label { min-width: 0; }
}

@media (max-width: 520px) {
  #journey-steps {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(0, 1fr);
    gap: 4px;
  }
  #journey-steps button {
    flex-direction: column;
    justify-content: center;
    gap: 4px;
    min-width: 0;
    padding: 5px 2px;
  }
  .contact-links {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
    width: 100%;
  }
  .contact-links a {
    flex-direction: column;
    gap: 6px;
    min-width: 0;
    min-height: 64px;
    padding: 10px 3px;
    font-size: 10px;
    line-height: 1.2;
  }
  .contact-links svg { width: 18px; height: 18px; flex-basis: 18px; }
  .contact-links span { white-space: nowrap; }

  .contact .input-grid { grid-template-columns: minmax(0, 1fr); }
  .input-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .simulator { grid-template-columns: minmax(0, 1fr); }
  .sim-inputs, .sim-results { min-width: 0; }
  .sim-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .sim-tabs button { padding: 10px 5px; line-height: 1.4; }
  .primary-result strong { font-size: clamp(32px, 9vw, 44px); overflow-wrap: anywhere; }
  .result-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .result-grid strong { font-size: clamp(18px, 5vw, 23px); overflow-wrap: anywhere; }
  form input, form select, form textarea,
  .input-grid input, .input-grid select, #open-answer {
    font-size: 16px;
    min-width: 0;
  }
  .contact .input-grid input, .contact .input-grid select, .contact textarea,
  .investor-brief input, .investor-brief select { font-size: 16px; }
  form input, form select, .input-grid input, .input-grid select { min-height: 48px; }
  .input-grid label { font-size: 11px; }
  .contact .input-grid label { font-size: 12px; }
  .map-filters button, .map-region-list button,
  .opportunity-filters button, .sim-tabs button,
  .language-selector button, .map-reset { min-height: 44px; }
  .map-reset { min-width: 32px; flex-shrink: 0; }
  .sim-tabs button { min-width: 0; }
  .path-action { position: static; margin-top: 12px; font-size: 11px; color: var(--gold); }
}

/* Mobile review: larger controls, complete map framing and readable scenario results. */
@media (max-width: 640px) {
  .section-heading > p, .question-layout > div > p:not(.eyebrow), .section-intro { font-size: 15px; line-height: 1.7; }
  .question-footnote, .fineprint, .visa-note p, .advisor-note, .mission-note,
  .form-note, .contact-small, .investor-brief > p { font-size: 12px; line-height: 1.7; }
  #journey-answer > label, #journey-answer legend, .input-grid label, form > label { font-size: 14px; line-height: 1.4; }
  .answer-options button, .goal-chips button { font-size: 14px; }
  .button { min-height: 48px; line-height: 1.4; white-space: normal; text-align: center; }
  .journey-next .button, .region-panel .button, .sim-results .button,
  .invest-actions .button, .dubai .button, .contact form > .button { font-size: 14px; }
  .opportunity-filters { gap: 6px; }
  .opportunity-filters button { font-size: 13px; padding: 10px 12px; }
  .dubai-scope p, .mission-day p, .clean-list, .opportunity-body p, .business-options p, .invest-copy > p:not(.eyebrow) { font-size: 14px; line-height: 1.7; }
  .opportunity-price small, .card-action, .business-options b { font-size: 12px; }
  .map-toolbar { display: grid; grid-template-columns: minmax(0, 1fr) 44px; align-items: center; gap: 10px; padding: 12px; }
  .map-filters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
  .map-filters button { font-size: 13px; line-height: 1.3; padding: 8px 5px; min-height: 44px; }
  .map-reset { width: 44px; min-width: 44px; height: 44px; font-size: 22px; }
  .map-frame { height: clamp(360px, 110vw, 460px); }
  .map-caption { font-size: 10px; letter-spacing: .06em; bottom: 45px; left: 10px; padding: 6px 8px; max-width: calc(100% - 20px); }
  .map-column .leaflet-control-zoom a { width: 44px; height: 44px; line-height: 44px; }
  .map-column .leaflet-control-attribution { font-size: 9px; line-height: 1.4; max-width: 100%; }
  .map-frame .city-marker::before { content: ''; position: absolute; inset: -15px; border-radius: 50%; }
  .map-frame .city-marker .city-name { left: 50%; right: auto; top: 22px; transform: translateX(-50%); font-size: 12px; line-height: 1.35; max-width: 170px; width: max-content; white-space: normal; text-align: center; padding: 5px 8px; }
  .map-frame .city-marker:not(.selected) .city-name { display: none; }
  .map-region-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; padding: 12px; }
  .map-region-list button { min-width: 0; font-size: 13px; line-height: 1.35; min-height: 44px; padding: 8px 7px; }
  .region-panel { display: flex; padding: 24px 20px; }
  .region-panel p, .region-analysis ul { font-size: 14px; line-height: 1.7; }
  .region-panel .small-caps, .region-kicker, .region-tags span { font-size: 11px; }
  .region-panel .text-link { font-size: 13px; min-height: 44px; display: inline-flex; align-items: center; }
  .region-analysis { margin: 22px 0; }
  .sim-inputs, .sim-results { padding: 24px 20px; }
  .sim-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
  .sim-tabs button { font-size: 13px; line-height: 1.4; padding: 10px 4px; min-height: 48px; }
  .sim-model-copy { font-size: 14px; line-height: 1.7; }
  .sim-inputs .input-grid { gap: 18px 14px; }
  .sim-inputs label { display: flex; flex-direction: column; justify-content: space-between; gap: 8px; font-size: 13px; line-height: 1.4; }
  .sim-inputs input { font-size: 17px; min-height: 50px; margin-top: 0; padding: 12px 9px; }
  .cost-details summary, #reset-sim { font-size: 14px; min-height: 48px; }
  #reset-sim { display: inline-flex; align-items: center; }
  .primary-result > span { font-size: 14px; }
  .result-grid { gap: 22px 14px; }
  .result-grid > div { display: flex; flex-direction: column; }
  .result-grid span { min-height: 3em; font-size: 12px; line-height: 1.5; }
  .result-grid strong { font-size: clamp(22px, 6vw, 28px); line-height: 1.5; }
  .chart-header { flex-direction: column; gap: 8px; font-size: 13px; line-height: 1.5; }
  .chart-header strong { font-size: 16px; }
  .chart-legend { flex-direction: column; gap: 6px; font-size: 12px; line-height: 1.5; }
  .sim-note { font-size: 12px; line-height: 1.7; }
  .contact .input-grid, .investor-brief .input-grid { grid-template-columns: minmax(0, 1fr); }
  .contact .input-grid label, .investor-brief .input-grid label { font-size: 14px; }
  .contact .input-grid input, .contact .input-grid select, .contact textarea,
  .investor-brief input, .investor-brief select { font-size: 16px; min-height: 48px; }
  .dialog-copy p, .dialog-copy ul { font-size: 14px; }
  .dialog-copy .dialog-note { font-size: 12px; }
  .dialog-copy .button { font-size: 14px; }
  .contact-links span { white-space: normal; text-align: center; }
  .sources summary { font-size: 12px; min-height: 44px; }
  .sources p, #source-list a { font-size: 12px; }
  .close-dialog { width: 44px; height: 44px; }
}
@media (max-width: 380px) {
  .sim-tabs { grid-template-columns: minmax(0, 1fr); }
  .sim-inputs .input-grid, .result-grid { grid-template-columns: minmax(0, 1fr); }
  .result-grid { gap: 16px; }
  .result-grid > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; }
  .result-grid span { min-height: 0; }
  .result-grid strong { font-size: 23px; overflow-wrap: normal; }
}
