@media (max-width: 980px) {
  .solution-shell .utility-bar {
    display: none;
  }

  .solution-shell .site-nav > .mobile-quote {
    display: flex;
  }
}

@media (max-width: 1100px) {
  .solution-page h1 { font-size: 46px; }
  .sol-hero-copy { width: 48%; }
  .sol-hero-media { width: 48%; }
  .sol-challenge-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .sol-stage-copy { padding: 42px; }
  .sol-route-grid,
  .sol-case-grid { gap: 18px; }
  .sol-quality-copy { padding: 54px; }
}

@media (max-width: 860px) {
  .sol-container { width: min(100% - 40px, 720px); }
  .sol-section { padding: 80px 0; }
  .solution-page h1 { font-size: 42px; }
  .solution-page h2 { font-size: 34px; }

  .sol-section-head {
    grid-template-columns: 1fr;
    gap: 20px;
    align-items: start;
    margin-bottom: 38px;
  }

  .sol-hero { min-height: 0; flex-direction: column; }
  .sol-hero-inner { order: 1; padding: 76px 0 48px; }
  .sol-hero-media {
    position: relative;
    inset: auto;
    order: 2;
    width: min(100% - 40px, 720px);
    height: 430px;
    margin: 0 auto 40px;
  }
  .sol-hero-overlay { display: none; }
  .sol-hero-copy { width: 100%; max-width: 650px; }
  .sol-challenge-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .sol-tab-rail {
    display: flex;
    max-width: 100%;
    overflow-x: auto;
    scrollbar-width: thin;
  }
  .sol-tab-rail button { min-width: 142px; }
  .sol-stage-panel { grid-template-columns: 1fr; }
  .sol-stage-media,
  .sol-stage-media img { min-height: 340px; max-height: 420px; }

  .sol-reason-grid,
  .sol-route-grid,
  .sol-case-grid { grid-template-columns: 1fr; }
  .sol-reason-grid article,
  .sol-reason-grid article + article {
    min-height: 0;
    padding: 34px 0;
    border-right: 0;
    border-bottom: 1px solid var(--sol-line);
  }
  .sol-reason-grid article > span { margin-bottom: 20px; }
  .sol-route-grid,
  .sol-case-grid { max-width: 620px; margin: 0 auto; }
  .sol-cap-panel { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .sol-quality { grid-template-columns: 1fr; min-height: 0; }
  .sol-quality-media { height: 480px; }
  .sol-quality-copy { max-width: 720px; padding: 70px 40px; }
  .sol-faq-layout { grid-template-columns: 1fr; gap: 38px; }
  .sol-faq-layout > div:first-child { position: static; }
}

@media (max-width: 560px) {
  .sol-container { width: calc(100% - 32px); }
  .sol-section { padding: 64px 0; }
  .solution-page h1 { font-size: 36px; line-height: 1.16; }
  .solution-page h2,
  .sol-final-cta h2 { font-size: 30px; }
  .solution-page h3 { font-size: 20px; }
  .sol-hero-inner { padding: 68px 0 38px; }
  .sol-breadcrumbs { top: 20px; }
  .sol-hero-copy > p:not(.sol-kicker) { font-size: 16px; }
  .sol-actions { display: grid; }
  .sol-button { width: 100%; }
  .sol-hero-media { width: calc(100% - 32px); height: 280px; margin-bottom: 24px; }
  .sol-challenge-grid { grid-template-columns: 1fr; }
  .sol-challenge-card { min-height: 0; padding: 30px 24px; }
  .sol-challenge-card > span { margin-bottom: 24px; }
  .sol-stage-media,
  .sol-stage-media img { min-height: 250px; }
  .sol-stage-copy { padding: 32px 24px; }
  .sol-route-media,
  .sol-case-grid a > div { height: 220px; }
  .sol-route-body { padding: 24px; }
  .sol-cap-panel { grid-template-columns: 1fr; }
  .sol-cap-panel > div { min-height: 118px; }
  .sol-quality-media { height: 300px; }
  .sol-quality-copy { padding: 56px 20px; }
  .sol-quality-copy .sol-button { width: 100%; }
  .sol-faq-list summary { font-size: 16px; }
  .sol-final-cta { padding: 72px 20px; }
}
