/* Campaign hub */
.hub-hero { background:
  radial-gradient(60% 80% at 85% 10%, rgba(243, 232, 210, .9), transparent 70%),
  radial-gradient(50% 60% at 0% 100%, rgba(237, 241, 235, .9), transparent 70%); }
.hub-hero h1 { max-width: 14ch; }
.hub-grid { list-style: none; margin: 0; padding: 0; display: grid; gap: clamp(16px, 2.4vw, 28px); grid-template-columns: 1fr; }
@media (min-width: 720px) { .hub-grid { grid-template-columns: repeat(2, 1fr); } }
.hub-grid > li { display: flex; }
.hub-card { padding: 0; overflow: hidden; display: flex; flex-direction: column; width: 100%; }
.hub-card__art { aspect-ratio: 16 / 10; background: var(--paper-2); border-bottom: 1px solid var(--line); display: grid; place-items: center; overflow: hidden; }
.hub-card__art svg { width: 100%; height: 100%; display: block; }
.hub-card__art--wall { background: #efe4cf; }
.hub-card__art--lift { background: #f6efe2; }
.hub-card__art--night { background: #1d2a19; }
.hub-card__body { padding: 20px 22px 24px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.hub-card__body .badge { align-self: flex-start; }
.hub-card__body .card__title { margin-top: 6px; }
.hub-card__body p { margin: 0; flex: 1; }
.hub-card__cta { display: inline-flex; align-items: center; gap: 6px; margin-top: 12px; font-weight: 700; color: var(--aps-green); }
.hub-card__arrow { font-size: 1.5em; line-height: 1; transition: transform .2s var(--ease); }
.hub-card:hover .hub-card__arrow { transform: translateX(4px); }
.hub-closing h2 { margin-top: var(--space-4); }
