/* Shared desktop layout. Loaded only at 1024px and above; mobile is unchanged. */
@media screen and (min-width: 1024px) {
  .wrap, .hd-in, .crumb { max-width: 1240px; padding-left: 32px; padding-right: 32px; }
  .hd-in { padding-top: 12px; padding-bottom: 12px; }
  .crumb { padding-top: 12px; padding-bottom: 12px; }
  .h1 { font-size: 28px; line-height: 1.6; padding: 18px 22px; margin-bottom: 20px; text-wrap: balance; }
  .lead, .intro { font-size: 18px; line-height: 1.9; }
  .case-overview { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 32px; align-items: start; margin: 24px 0 32px; }
  .case-summary, .case-visual { display: block; min-width: 0; }
  .case-overview .tbl, .case-visual > .h2:first-child, .case-visual > .ba:first-child { margin-top: 0; }
  .case-overview .h2 { font-size: 19px; line-height: 1.6; }
  .case-overview .tbl { font-size: 16px; }
  .case-overview .tbl th { width: 30%; white-space: normal; }
  .case-overview .tbl th, .case-overview .tbl td { padding: 12px; }
  .ba { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; align-items: start; }
  .ba > *, .gallery > *, .photo-pair > * { min-width: 0; }
  .ba img { width: 100%; height: 360px; object-fit: contain; background: #f6f8fc; }
  .ba .ba-label { font-size: 14px; font-weight: bold; color: var(--navy-d); margin-bottom: 6px; }
  .photo img { width: 100%; height: auto; max-height: 460px; object-fit: contain; background: #f6f8fc; }
  .case-overview .photo img { max-height: 440px; }
  .case-visual:has(> .ba):has(> .photo) { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; align-items: start; }
  .case-visual:has(> .photo) > .ba { display: contents; }
  .case-visual:has(> .ba):has(> .photo) > :is(.h2, p) { grid-column: 1 / -1; }
  .case-visual:has(> .ba) > .photo { margin: 0; }
  .case-visual:has(> .ba):has(> .photo) img { height: 260px; object-fit: contain; }
  .case-section { display: block; margin: 32px 0; }
  .case-section > .h2 { margin-top: 0; }
  .case-section-media { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 32px; align-items: start; }
  .case-section-media > * { grid-column: 1; min-width: 0; }
  .case-section-media > .h2 { grid-column: 1 / -1; }
  .case-section-media > :is(.photo, .gallery, .photo-pair, .ba) { grid-column: 2; grid-row: 2 / span 20; margin-top: 0; }
  .case-section-media > p:last-child { align-self: start; }
  .case-section-media .gallery img, .case-section-media .photo-pair img { max-height: 360px; object-fit: contain; }
  .case-faq { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 24px; align-items: start; }
  .case-faq > .h2 { grid-column: 1 / -1; margin-bottom: 0; }
  .case-faq > .box { margin: 0; height: 100%; font-size: 17px; }
  .case-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
  .case-steps > * { grid-column: 1 / -1; }
  .case-steps > .step { grid-column: auto; min-width: 0; margin: 0; }
  .case-steps .photo img { max-height: 360px; }
  .cta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; padding: 24px 32px; margin: 32px 0; }
  .cta > p { grid-column: 1 / -1; }
  .cta .btn { max-width: none; margin: 8px 0 0; align-self: stretch; }
  .case-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 24px 0; }
  .case-cards .card { margin: 0; height: 100%; padding: 14px 12px; gap: 12px; align-items: center; }
  .case-cards .card .c-thumb { width: 92px; height: 108px; }
  .case-cards .card .c-title { font-size: 17px; line-height: 1.6; }
  .case-cards .card .c-meta { font-size: 13px; }
  a:focus-visible { outline: 3px solid #0033cc; outline-offset: 4px; }
}
