/* Asgard Portfolio */
.asg-pf__filters { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 32px; }
.asg-pf__filter {
    padding: 9px 16px; border-radius: 999px; font-size: 12px;
    font-family: 'Manrope', system-ui, sans-serif;
    background: #D0E3F2; color: #141416; border: none; cursor: pointer;
    transition: background 0.2s, color 0.2s;
    -webkit-tap-highlight-color: transparent;
}
.asg-pf__filter:hover { opacity: 0.85; }
.asg-pf__filter.is-active { background: #141416; color: #fff; }

/* Grid layout */
.asg-pf__grid { transition: opacity 0.3s; }
.asg-pf__grid.is-loading { opacity: 0.4; pointer-events: none; }

.asg-pf__featured-row { display: grid; grid-template-columns: 1.4fr 1fr; gap: 16px; margin-bottom: 16px; }
.asg-pf__stacked { display: grid; grid-template-rows: 1fr 1fr; gap: 16px; }
.asg-pf__bottom { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }

/* Card base */
.asg-pf__item {
    border-radius: 22px; overflow: hidden; position: relative;
    background: #D0E3F2; display: block; text-decoration: none;
}
.asg-pf__item--featured { aspect-ratio: 4/3; }
.asg-pf__item--stacked { }
.asg-pf__item--small { aspect-ratio: 1; }

.asg-pf__img {
    position: absolute; inset: 0; width: 100%; height: 100%;
    object-fit: cover;
    transition: transform 0.6s cubic-bezier(0.4,0,0.2,1);
}
.asg-pf__item:hover .asg-pf__img { transform: scale(1.03); }

.asg-pf__overlay {
    position: absolute; inset: 0;
    background: linear-gradient(180deg, transparent 45%, rgba(20,20,22,0.75) 100%);
    pointer-events: none;
}

.asg-pf__chip { position: absolute; top: 20px; left: 20px; z-index: 1; }

/* Info overlays */
.asg-pf__info {
    position: absolute; left: 24px; right: 24px; bottom: 20px; color: #fff; z-index: 1;
}
.asg-pf__info--lg { left: 32px; right: 32px; bottom: 32px; }

.asg-pf__title-lg { font-size: 34px; letter-spacing: -0.025em; line-height: 1.05; }
.asg-pf__desc { font-size: 14px; opacity: 0.85; margin-top: 8px; }

.asg-pf__label {
    font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase;
    opacity: 0.85; margin-bottom: 4px;
}
.asg-pf__title { font-size: 20px; letter-spacing: -0.02em; }

/* CTA tile */
.asg-pf__cta-tile {
    background: #141416;
    display: flex; align-items: center; justify-content: center;
    padding: 24px; text-align: center; color: #fff;
}
.asg-pf__cta-tile:hover { opacity: 1; }
.asg-pf__cta-inner { }
.asg-pf__cta-count { font-size: 38px; letter-spacing: -0.03em; color: #243A5F; line-height: 1; }
.asg-pf__cta-label { font-size: 14px; color: rgba(255,255,255,0.8); margin-top: 12px; line-height: 1.4; }
.asg-pf__cta-link { margin-top: 20px; font-size: 13px; border-bottom: 1px solid rgba(255,255,255,0.35); padding-bottom: 2px; display: inline-block; color: #fff; }

/* Responsive */
@media (max-width: 1024px) {
    .asg-pf__featured-row { grid-template-columns: 1fr; }
    .asg-pf__stacked { grid-template-rows: auto; grid-template-columns: 1fr 1fr; }
    .asg-pf__bottom { grid-template-columns: repeat(2, 1fr); }
    .asg-pf__title-lg { font-size: 28px; }
}
@media (max-width: 768px) {
    .asg-pf__stacked { grid-template-columns: 1fr; }
    .asg-pf__bottom { grid-template-columns: 1fr 1fr; }
    .asg-pf__item--featured { aspect-ratio: 3/2; }
    .asg-pf__title-lg { font-size: 24px; }
    .asg-pf__title { font-size: 18px; }
}
