.home-cases { padding: clamp(72px, 8vw, 120px) max(24px, calc((100% - 1208px) / 2)); background: #f2f6f7; color: #001a3b; scroll-margin-top: 104px; }
.home-cases-heading { display: grid; grid-template-columns: 1.3fr 1fr; gap: 50px; align-items: end; margin-bottom: 42px; }
.home-cases .eyebrow { margin: 0 0 20px; color: #357d24; }
.home-cases h2 { margin: 0; font-size: clamp(36px, 4vw, 58px); line-height: 1.08; letter-spacing: -.035em; }
.home-cases-heading > p { margin: 0; max-width: 430px; font-size: 18px; line-height: 1.65; color: #42566b; }
.home-cases-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.home-case { display: flex; flex-direction: column; padding: 28px; background: #fff; border: 1px solid #d9e3e8; border-top: 3px solid #1687a1; transition: border-color .2s, box-shadow .2s; }
.home-case:nth-child(n+4) { border-top-color: #3dae2b; }
.home-case:focus-within, .home-case:hover { border-color: #008574; box-shadow: 0 14px 32px -24px #001a3b70; }
.home-case-category { display: flex; align-items: center; gap: 12px; margin: 0 0 24px; color: #167383; font-size: 12px; letter-spacing: .07em; text-transform: uppercase; }
.home-case-category svg { width: 27px; height: 27px; flex-shrink: 0; }
.home-case h3 { margin: 0 0 16px; font-size: 24px; line-height: 1.22; letter-spacing: -.02em; }
.home-case h3, .home-case-dialog h2, .home-case-dialog p, .home-case-flow li { overflow-wrap: anywhere; hyphens: auto; }
.home-case > p:not(.home-case-category) { margin: 0 0 26px; color: #42566b; font-size: 17px; line-height: 1.6; }
.home-case-open { display: flex; justify-content: space-between; gap: 16px; align-items: center; width: 100%; margin-top: auto; padding: 16px 0 0; border: 0; border-top: 1px solid #d9e3e8; border-radius: 0; background: transparent; color: #001a3b; cursor: pointer; font-size: 16px; text-align: left; }
.home-case-open span { color: #278423; font-size: 24px; line-height: 1; }
.home-case-open:focus-visible, .home-case-dialog a:focus-visible, .home-case-close:focus-visible { outline: 3px solid #146bb5; outline-offset: 5px; }
.home-case-dialog { position: fixed; inset: 0; width: min(820px, calc(100% - 32px)); max-height: calc(100dvh - 48px); margin: auto; padding: 0; border: 1px solid #d9e3e8; color: #001a3b; background: #fff; overscroll-behavior: contain; box-shadow: 0 30px 100px #001a3b40; }
.home-case-dialog::backdrop { background: rgba(0, 20, 45, .72); backdrop-filter: blur(4px); }
.home-case-dialog-bar { position: sticky; top: 0; z-index: 1; display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 18px 32px; background: #fff; border-bottom: 1px solid #d9e3e8; }
.home-case-dialog-bar > span { font-size: 12px; text-transform: uppercase; letter-spacing: .09em; color: #52677a; }
.home-case-dialog-bar form { margin: 0; }
.home-case-close { padding: 8px 12px; background: #f2f6f7; border: 1px solid #d9e3e8; color: #001a3b; font-size: 15px; cursor: pointer; }
.home-case-dialog-body { padding: 32px; }
.home-case-dialog h2 { margin: 0 0 26px; font-size: clamp(29px, 4vw, 40px); line-height: 1.15; letter-spacing: -.03em; }
.home-case-dialog h3 { margin: 25px 0 8px; font-size: 19px; font-weight: 600; }
.home-case-dialog p { margin: 0; font-size: 17px; line-height: 1.65; color: #42566b; }
.home-case-flow { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 26px 0; padding: 0; list-style: none; }
.home-case-flow li { padding: 14px; background: #f2f6f7; border-top: 2px solid #1687a1; font-size: 15px; line-height: 1.4; }
.home-case-flow span { display: block; margin-bottom: 8px; color: #167383; font-size: 12px; }
.home-case-benefit { margin-top: 24px; padding: 22px; border-left: 3px solid #3dae2b; background: #eef7ec; }
.home-case-benefit h3 { margin-top: 0; }
.home-case-actions { display: flex; flex-wrap: wrap; gap: 18px 24px; align-items: center; margin-top: 28px; }
.home-case-contact { display: inline-block; padding: 13px 20px; background: #001a3b; color: #fff; font-size: 16px; }
.home-case-related { color: #001a3b; font-size: 15px; text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 1000px) { .home-cases-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 650px) {
  .home-cases { padding-inline: 24px; scroll-margin-top: 82px; }
  .home-cases-heading { grid-template-columns: 1fr; gap: 22px; margin-bottom: 30px; }
  .home-cases-grid { grid-template-columns: 1fr; gap: 14px; }
  .home-case { padding: 24px; }
  .home-case-dialog { max-height: calc(100dvh - 24px); width: calc(100% - 24px); }
  .home-case-dialog-bar { padding: 12px 18px; }
  .home-case-dialog-body { padding: 24px 20px; }
  .home-case-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
