/* Downloaded webfonts keep Chinese and Latin typography consistent across devices. */
:root {
  --font-ui: "DM Sans", "Noto Sans SC", sans-serif;
  --font-display: "DM Sans", "Noto Sans SC", sans-serif;
  --font-data: "DM Sans", "Noto Sans SC", sans-serif;
}

body,
button,
input,
select,
textarea {
  font-family: var(--font-ui);
  font-optical-sizing: auto;
  font-kerning: normal;
  font-synthesis: none;
}

body {
  font-size: 16px;
  line-height: 1.58;
  letter-spacing: 0;
}

.hero h1 {
  font-family: var(--font-display);
  font-size: clamp(36px, 8.2vw, 54px);
  font-weight: 680;
  line-height: 1.16;
  letter-spacing: -.035em;
  text-wrap: balance;
}

.hero__eyebrow,
.section-kicker {
  font-family: var(--font-display);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: .12em;
}

.hero__date {
  font-family: var(--font-ui);
  font-size: 15px;
  font-weight: 550;
  line-height: 1.5;
  letter-spacing: .01em;
  font-variant-numeric: tabular-nums;
}

.section-heading h2 {
  font-family: var(--font-display);
  font-size: clamp(23px, 3.8vw, 28px);
  font-weight: 680;
  line-height: 1.24;
  letter-spacing: -.022em;
}

.section-index,
.soft-label {
  font-family: var(--font-data);
  font-size: 12px;
  font-weight: 650;
  line-height: 1.25;
  letter-spacing: .06em;
  font-variant-numeric: tabular-nums;
}

.topbar nav a,
.section-tabs a {
  font-size: 14px;
  font-weight: 580;
  letter-spacing: -.01em;
}

.flight-card__top,
.flight-placeholder__eyebrow {
  font-family: var(--font-data);
  font-size: 12px;
  line-height: 1.4;
  letter-spacing: .08em;
  font-variant-numeric: tabular-nums;
}

.flight-card__airlines,
.flight-stop__city,
.flight-countdown span {
  font-size: 12px;
  line-height: 1.45;
}

.flight-stop__code {
  font-family: var(--font-display);
  font-size: clamp(28px, 7vw, 36px);
  font-weight: 700;
  letter-spacing: -.035em;
  font-variant-numeric: tabular-nums;
}

.flight-stop__timing {
  font-size: 11px;
  line-height: 1.45;
  font-variant-numeric: tabular-nums;
}

.flight-stop__timing b { font-size: 13px; }
.flight-stop__timing em { font-size: 11px; }

.flight-segment span {
  font-family: var(--font-data);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.3;
  font-variant-numeric: tabular-nums;
}

.flight-stop__city { font-size: 13px; }
.flight-stop__timing { font-size: 12px; }
.flight-stop__timing b { font-size: 15px; }
.flight-stop__code,
.flight-countdown strong,
.rental-countdown strong,
.rental-price strong,
.rental-stop__label,
.geo-route-arrow span,
.guide-feature,
.guide-highlights__heading span,
.guide-highlight,
.guide-highlight__number,
.geo-marker span {
  font-family: var(--font-data);
}

.flight-countdown strong {
  font-family: var(--font-data);
  font-size: clamp(21px, 6.5vw, 29px);
  font-variant-numeric: tabular-nums;
}

.flight-placeholder h3 {
  font-size: clamp(24px, 5.6vw, 30px);
  font-weight: 680;
  line-height: 1.2;
  letter-spacing: -.025em;
}

.flight-placeholder p { font-size: 14px; line-height: 1.65; }
.flight-placeholder li { font-size: 12px; line-height: 1.35; }

.day-meta,
.ticket-card__date {
  font-family: var(--font-data);
  font-size: 12px;
  font-weight: 650;
  line-height: 1.45;
  letter-spacing: .055em;
  font-variant-numeric: tabular-nums;
}

.day-title {
  font-size: 18px;
  font-weight: 680;
  line-height: 1.4;
  letter-spacing: -.012em;
}

.day-locations {
  font-size: 14px;
  line-height: 1.6;
  overflow-wrap: anywhere;
}

.day-ticket-summary,
.ticket-badge {
  font-size: 12px;
  font-weight: 650;
  line-height: 1.35;
}

.schedule-time {
  font-family: var(--font-data);
  font-size: 12px;
  line-height: 1.5;
  font-variant-numeric: tabular-nums;
}

.schedule-text,
.drive-note-panel li,
.accordion li {
  font-size: 15px;
  line-height: 1.68;
}

.schedule-map-link,
.schedule-ticket__open,
.ticket-actions a,
.ticket-actions button,
.ticket-details > summary,
.todo-form button {
  font-size: 13px;
  font-weight: 650;
}

.schedule-map-link { min-height: 40px; }
.schedule-ticket__status { font-size: 11px; font-weight: 700; }
.schedule-ticket__content strong { font-size: 12px; }
.schedule-ticket__content small { font-size: 11px; line-height: 1.5; }

.detail-note,
.ticket-dialog__guidance,
.ticket-card__guidance strong,
.ticket-uncertainties,
.ticket-details dl div,
.todo-text {
  font-size: 14px;
  line-height: 1.6;
}

.tickets-summary,
.ticket-card__head p,
.ticket-actions span,
.todo-empty { font-size: 12px; line-height: 1.5; }
.ticket-card__head h3 { font-size: 18px; line-height: 1.35; }
.ticket-card__guidance span { font-size: 11px; line-height: 1.45; letter-spacing: .06em; }
.ticket-actions a,
.ticket-actions button,
.ticket-details > summary,
.todo-delete { min-height: 44px; }
.todo-form input { font-size: 15px; }
.packing-group h3 { font-size: 12px; line-height: 1.5; letter-spacing: .08em; }
.packing-item { font-size: 15px; }
.text-button { font-size: 13px; }
.footer { font-size: 13px; line-height: 1.5; }

@media (max-width: 600px) {
  .hero { padding-top: 28px; }
  .hero h1 { font-size: clamp(35px, 9vw, 44px); line-height: 1.2; letter-spacing: -.03em; }
  .section { padding-inline: 16px; }
  .section-heading h2 { font-size: 24px; line-height: 1.3; }
  .section-kicker,
  .hero__eyebrow { font-size: 11px; letter-spacing: .11em; }
  .day-toggle { gap: 9px; }
  .day-title { font-size: 17px; }
  .day-locations { font-size: 13px; line-height: 1.58; }
  .schedule-item { padding-left: 78px; }
  .schedule-text { font-size: 14px; line-height: 1.68; }
  .schedule-map-link { min-height: 40px; font-size: 12px; }
  .flight-stop__timing { font-size: 11px; }
  .flight-stop__timing b { font-size: 14px; }
  .footer { gap: 14px; font-size: 12px; }
}
