/* Shared layout for the six client case pages; does not affect Journal or home. */
.editorial-case .case-heading { padding-block: 38px 34px; }
.editorial-case .case-breadcrumb { margin-bottom: 22px; }
.editorial-case .case-heading h1 { font-size: clamp(42px, 5.5vw, 76px); }
.editorial-case .case-location { margin-top: 18px; }
.editorial-case .case-banner { display: block; max-width: 1440px; }
.case-banner .case-photo-link { display: block; aspect-ratio: 21 / 9; }
.case-banner .case-photo-link img { width: 100%; height: 100%; object-fit: cover; object-position: var(--banner-position, 50% 50%); }
.editorial-case .case-summary { max-width: 1120px; margin-block: 70px 75px; gap: 9%; }
.editorial-case .case-story p { font-size: 18px; line-height: 1.8; max-width: 60ch; }
.editorial-case .case-story h2 { font-size: clamp(32px, 3.3vw, 46px); }
.editorial-case .case-facts dt { font-size: 11px; }
.editorial-case .case-facts dd { font-size: 15px; }
.editorial-case .case-story h3 { font-size: 12px; }
.editorial-case .case-carousel { --gallery-height: clamp(340px, 33vw, 480px); max-width: 1440px; margin-bottom: 75px; }
.case-carousel .case-gallery-heading { margin-bottom: 28px; }
.case-carousel-tools { display: flex; align-items: center; gap: 12px; }
.case-carousel-count { min-width: 88px; text-align: right; margin-right: 8px; font: 400 13px/1.5 var(--sans); color: var(--muted); font-variant-numeric: tabular-nums; }
.case-carousel-tools button { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid var(--rule); border-radius: 50%; padding: 10px; background: transparent; color: var(--ink); cursor: pointer; }
.case-carousel-tools button:hover:not(:disabled) { background: #dce0d6; border-color: #9ba28f; }
.case-carousel-tools button:disabled { opacity: .3; cursor: default; }
.case-carousel-tools svg { display: block; width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.4; }
.case-carousel-track { display: flex; align-items: center; gap: 24px; overflow-x: auto; overscroll-behavior-inline: contain; scroll-snap-type: x proximity; scrollbar-width: thin; scrollbar-color: #8f9486 transparent; padding-block: 5px 22px; }
.case-carousel-track:focus-visible { outline: 2px solid #775d46; outline-offset: 6px; }
.case-carousel-item { flex: 0 0 auto; width: calc(var(--gallery-height) * var(--photo-ratio)); max-width: 82vw; scroll-snap-align: start; }
.case-carousel-item .case-photo-link img { width: 100%; height: auto; }
.case-carousel + .case-films { margin-top: 65px; }
@media (max-width: 900px) {
  .case-banner .case-photo-link { aspect-ratio: 16 / 9; }
}
@media (max-width: 700px) {
  .editorial-case .case-heading { padding-block: 28px; }
  .editorial-case .case-heading h1 { font-size: clamp(38px, 10vw, 56px); }
  .editorial-case .case-breadcrumb { font-size: 11px; margin-bottom: 18px; }
  .editorial-case .case-summary { margin-block: 42px 48px; gap: 28px; }
  .editorial-case .case-story p { font-size: 17px; }
  .editorial-case .case-story h2 { font-size: 33px; }
  .editorial-case .case-carousel { --gallery-height: min(420px, 58svh); margin-bottom: 45px; }
  .case-carousel .case-gallery-heading { margin-bottom: 22px; gap: 12px; }
  .case-carousel .case-gallery-heading h2 { font-size: 28px; }
  .case-carousel-tools { gap: 8px; }
  .case-carousel-count { font-size: 11px; min-width: 70px; margin-right: 0; }
  .case-carousel-tools button { width: 44px; height: 44px; }
  .case-carousel-track { gap: 16px; }
  .case-carousel + .case-films { margin-top: 45px; }
}
@media (max-width: 360px) {
  .case-carousel .case-gallery-heading { flex-wrap: wrap; }
  .case-carousel-tools { margin-left: auto; }
}
@media (prefers-reduced-motion: reduce) {
  .case-carousel-track { scroll-behavior: auto; }
}
