/* Keep shared card rows aligned independently of text wrapping. */
.cards{align-items:stretch}.cards>.card{display:flex;flex-direction:column;height:100%}.cards>.card>.landscape{flex-shrink:0}.cards>.card>.card-body{display:flex;flex-direction:column;flex:1;padding:18px 15px 14px}.cards .project-title{align-items:flex-start;min-height:88px;gap:13px}.cards .project-title>.pin{margin-top:8px}.cards .project-title>div{min-width:0}.cards .project-title h3{line-height:1.3}.cards .project-title p{line-height:1.5;margin-top:4px}.cards .features{display:grid;grid-template-rows:repeat(3,minmax(48px,auto));gap:6px;margin:14px 0 20px;flex:1}.cards .features li{margin:0;align-items:flex-start;line-height:1.5;gap:12px}.cards .features li>span{flex:0 0 20px;padding-top:1px}.cards .card-body>.button{margin-top:auto;min-height:46px;flex-shrink:0}
@media(min-width:701px) and (max-width:1100px){.cards .project-title{min-height:110px}.cards .features{grid-template-rows:repeat(3,minmax(62px,auto))}.cards .card-body>.button{gap:12px;padding:0 10px}}
@media(max-width:700px){.cards .project-title{min-height:0}.cards .features{grid-template-rows:none;gap:12px;flex:0 0 auto;margin:20px 0}.cards>.card>.card-body{padding:18px}.cards .card-body>.button{min-height:48px}}
