.case-card > .media-frame { display:block; width:100%; height:100%; min-width:0; }
.case-card > .media-frame > img { display:block; width:100%; height:100%; object-fit:cover; }
#updates .home-real-news { color:inherit; text-decoration:none; gap:clamp(24px,4vw,70px); }
#updates .home-real-news .update-copy { min-width:0; }
#updates .home-real-news h3 { white-space:normal; font-size:clamp(19px,1.6vw,28px); line-height:1.3; margin-bottom:14px; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
#updates .home-real-news p { font-size:clamp(14px,1vw,17px); line-height:1.6; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.home-news-more { display:inline-block; margin-top:12px; font-size:14px; }
#updates .home-news-media { margin:0; min-width:0; width:100%; aspect-ratio:65/36; max-height:30vh; overflow:hidden; }
#updates .home-news-media img { display:block; width:100%; height:100%; object-fit:cover; }
#updates .update-two .home-news-media { grid-column:1; grid-row:1; }
#updates .update-two .update-copy { grid-column:2; grid-row:1; }
#updates .home-real-news:hover h3 { color:#555; }
@media(max-width:700px) {
 #updates .home-real-news { grid-template-columns:1fr; }
 #updates .update-two .home-news-media, #updates .update-two .update-copy { grid-column:auto; grid-row:auto; }
 #updates .home-news-media { max-height:none; }
}

/* Center the whole text group, including wrapped descriptions. */
#why .why-item {
  box-sizing: border-box;
  height: auto;
  padding-block: 8px;
  align-items: center;
  align-content: center;
}
#why .why-item > div {
  min-width: 0;
  align-self: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
@media(min-width:1001px) {
  #why .why-grid { grid-auto-rows: minmax(clamp(80px, 9svh, 104px), 1fr); }
}

/* Match the graphic-case listing rather than deriving card height from the viewport. */
#cases .case-card {
  height: auto;
  min-height: 0;
  aspect-ratio: 65 / 29;
  grid-template-columns: 38fr 62fr;
}
#cases .case-card > .media-frame { min-height: 0; overflow: hidden; }
#cases .case-copy { min-width: 0; }
#cases { height: auto !important; min-height: calc(100svh - var(--header-height)); }
#cases .cases-inner {
  height: auto;
  min-height: calc(100svh - var(--header-height));
  box-sizing: border-box;
  padding-block: clamp(24px, 4svh, 40px);
}
@media (max-width: 767px) {
  #cases .case-card { min-height: 205px; }
}
@media (max-width: 700px) {
  #cases .case-card { aspect-ratio: auto; height: 205px; }
}

/* Fit both rows and navigation in the desktop screen, without changing card proportions. */
@media (min-width: 1001px) {
  #cases {
    --case-title-size: clamp(32px, 4vw, 56px);
    height: calc(100svh - var(--header-height)) !important;
  }
  #cases .cases-inner {
    height: 100%; min-height: 0; padding-block: 20px;
    display: flex; flex-direction: column; justify-content: center; align-items: center;
  }
  #cases .section-title {
    font-size: var(--case-title-size); line-height: 1.15;
    margin: 0; flex: 0 0 auto;
  }
  #cases .case-grid {
    width: min(100%, calc((100svh - var(--header-height) - var(--case-title-size) * 1.15 - 152px) * 65 / 29 + 30px));
    margin: 20px auto 0; gap: 16px 30px; flex: 0 0 auto;
  }
  #cases .case-controls { margin: 20px 0 0; height: 56px; flex: 0 0 56px; }
  #cases .round-arrow { width: 56px; height: 56px; }
  #cases .case-copy { padding: 11px clamp(12px, 1.3vw, 21px); }
  #cases .case-copy h3 { font-size: clamp(16px, 1.35vw, 22px); }
  #cases .case-copy p { margin-bottom: 0; }
}
