.vaso-cbanners__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-auto-rows: minmax(0, 434px);
  gap: 20px;
}
.vaso-cbanner {
  position: relative; display: block; overflow: hidden;
  background: var(--vaso-tile);
  min-height: 434px;
}
.vaso-cbanner--tall { grid-row: span 2; min-height: 888px; }
.vaso-cbanner__media { position: absolute; inset: 0; }
.vaso-cbanner__media img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--transition-slow); }
.vaso-cbanner:hover .vaso-cbanner__media img { transform: scale(1.03); }
.vaso-cbanner__content {
  position: absolute; left: 60px; bottom: 64px; z-index: 2;
  display: flex; flex-direction: column; align-items: flex-start; gap: 12px;
}
.vaso-cbanner--tall .vaso-cbanner__content { left: 90px; }
.vaso-cbanner__heading {
  font-family: var(--font-display); font-weight: 400;
  font-size: clamp(2rem, 4vw, 3.5rem); line-height: 1.05;
  color: var(--vaso-ink); text-transform: capitalize; margin: 0;
}
.vaso-cbanner__cta { color: var(--vaso-ink); }

@media (max-width: 900px) {
  .vaso-cbanners__grid { grid-template-columns: 1fr; grid-auto-rows: minmax(0, 380px); }
  .vaso-cbanner, .vaso-cbanner--tall { min-height: 380px; grid-row: auto; }
  .vaso-cbanner__content, .vaso-cbanner--tall .vaso-cbanner__content { left: 28px; bottom: 40px; }
  .vaso-cbanner__heading { font-size: clamp(1.75rem, 8vw, 2.5rem); }
}
