@media (max-width: 1279px) {
  :root { font-family: var(--ts-font); }
  .tansun-static-home { font-family: var(--ts-font); }
  .capability-tabs { scroll-padding-inline: 24px; }
  .capability-tabs button { flex: 0 0 auto; padding-inline: 20px; min-height: 48px; }
  .capabilities { min-height: 0; padding-block: 56px 48px; }
  .capabilities-heading h2 { font-size: 32px; line-height: 1.4; font-weight: 700; letter-spacing: 0; }
  .capabilities-heading p { font-size: 15px; line-height: 26px; margin-top: 16px; }
  .capability-tabs { margin-top: 32px; }
  .capability-panel { min-height: 0; margin-top: 28px; }
  .capability-visual { margin-inline: auto; }
  .capability-copy { margin-top: 24px; }
  .capability-copy h3 { text-wrap: balance; font-size: 26px; line-height: 36px; font-weight: 600; }
  .capability-copy p { min-height: 0; margin-top: 16px; font-size: 15px; line-height: 26px; }
  .capability-copy .psd-button { margin-top: 24px; height: 48px; font-size: 15px; }
  .psd-button .arrow { margin-left: 10px; }
  .journey { min-height: max(960px, calc(730px + 35vw)); }
  .news-heading { gap: 16px; flex-wrap: wrap; }
  .news-heading .psd-button { flex-shrink: 0; }
  .news-copy .round-link { position: relative; inset: auto; margin-top: 24px; }
  .news-progress { margin-top: 24px; gap: 4px; }
  .news-progress .news-dot { position: relative; width: 44px; height: 44px; flex: 0 0 44px; background: transparent; }
  .news-progress .news-dot::after { content: ''; position: absolute; width: 14px; height: 14px; inset: 15px; border-radius: 50%; background: #bcbcbc; }
  .news-progress .news-dot.is-active::after { background: var(--brand-blue); }
  .cta-actions { flex-wrap: wrap; }
  .cta-actions .psd-button { flex: 0 0 156px; }
}

/* Mobile font sizes from the approved sheet; all other style properties stay inherited. */
@media (max-width: 767px) {
  .tansun-static-home .home-banner__eyebrow,
  .tansun-static-home #banner-1-v2 .home-banner__description,
  .tansun-static-home #banner-1-v2 .home-banner__link,
  .tansun-static-home #capabilities .capabilities-heading p,
  .tansun-static-home .capability-copy p,
  .tansun-static-home .capability-copy .psd-button,
  .tansun-static-home .news-heading .psd-button,
  .tansun-static-home .news-copy :is(time, p),
  .tansun-static-home .cta-actions .psd-button { font-size: 14px; }
}

@media (max-width: 767px) {
  .home-banner, .home-cases, .case-stage, .capability-panel, .news { touch-action: pan-y pinch-zoom; }
}

@media (max-width: 767px) {
  .tansun-static-home .capabilities-heading h2 { font-size: 32px; }
  .tansun-static-home .news-heading h2 { font-size: 32px; }
  .tansun-static-home .cta-copy h2 { font-size: 22px; }
}

/* The native button uses the original mouse artwork and its existing position. */
.tansun-static-home button.mouse-mark { appearance: none; padding: 0; background: transparent; cursor: pointer; }
.tansun-static-home button.mouse-mark:focus-visible { outline: 3px solid var(--brand-blue); outline-offset: 5px; }

/* Match the detail scenario's 8px dots while retaining 44px touch targets. */
@media (max-width: 767px) {
  .tansun-static-home .home-cases__controls button::after,
  .tansun-static-home .news-progress .news-dot::after { width: 8px; height: 8px; inset: 18px; }
  .tansun-static-home .news-progress > span { display: none; }
}
