.owned-saas {
    --saas-gap: clamp(24px, 2.8vw, 48px);
    --saas-step: 48px;
    --saas-columns: 3;
    position: relative;
}
.owned-saas__heading {
    width: 100vw;
    margin-inline: calc(50% - 50vw);
    padding-inline: calc(50vw - 50%);
    overflow: clip;
}
.owned-saas__title {
    white-space: nowrap;
}
.owned-saas__runway { position: relative; }
.owned-saas__scene { padding: 8px 0 32px; }
.owned-saas__products {
    display: grid;
    align-items: start;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 56px var(--saas-gap);
    margin: 0;
    padding: 0;
    list-style: none;
}
.owned-saas__product { min-width: 0; margin: 0; padding: 0; }
.owned-saas__product:nth-child(3n + 2) { margin-top: var(--saas-step); }
.owned-saas__product:nth-child(3n) { margin-top: calc(2 * var(--saas-step)); }
.owned-saas__link {
    display: block;
    color: var(--white);
    text-decoration: none;
    scroll-margin-block: 32px var(--site-nav-clearance, 120px);
}
.owned-saas__link:hover, .owned-saas__link:focus { color: var(--white); }
.owned-saas__details { padding-top: 22px; }
.owned-saas__details h3 { line-height: 1.25; }
.owned-saas__category { display: block; margin-bottom: 10px; font-size: 14px; }
.owned-saas__description { max-width: 36ch; }
.owned-saas--single .owned-saas__products { grid-template-columns: minmax(0, 1fr); max-width: 880px; }
.owned-saas--duo .owned-saas__products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.owned-saas--cinematic .owned-saas__scene {
    padding-bottom: var(--site-nav-clearance, 120px);
    transform: translate3d(0, var(--saas-pin-y, 0px), 0);
    will-change: transform;
}
.owned-saas--cinematic .owned-saas__viewport { overflow: clip; height: var(--saas-gallery-height); }
.owned-saas--cinematic .owned-saas__products {
    display: flex;
    gap: var(--saas-gap);
    align-items: start;
    transform: translate3d(var(--saas-track-x, 0px), var(--saas-track-y, 0px), 0);
    will-change: transform;
}
.owned-saas--cinematic .owned-saas__product {
    margin-top: 0;
    flex: 0 0 calc((100% - (var(--saas-columns) - 1) * var(--saas-gap)) / var(--saas-columns));
    transform: translateY(var(--saas-card-y, 0px));
}
@media (min-width: 1024px) and (max-height: 800px) {
    .owned-saas { --saas-columns: 4; --saas-step: 30px; }
}
@media (max-width: 1023px) {
    .owned-saas__products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .owned-saas__product:nth-child(n) { margin-top: 0; }
    .owned-saas__product:nth-child(even) { margin-top: var(--saas-step); }
}
@media (max-width: 575px) {
    .owned-saas__products, .owned-saas--duo .owned-saas__products { grid-template-columns: minmax(0, 1fr); gap: 40px; }
    .owned-saas__details { padding-top: 18px; }
    .owned-saas__product:nth-child(n) { margin-top: 0; }
}
