.network-partners {
    --np-accent: var(--nx-color-primary, var(--bs-primary, #f26b00));
    --np-bg: var(--nx-page-bg, var(--nx-color-surface, var(--bs-body-bg, #f7f8fa)));
    --np-surface: var(--nx-color-surface, var(--bs-tertiary-bg, #eef1f4));
    --np-card: var(--nx-color-card-bg, var(--nx-component-card-bg, var(--bs-card-bg, #fff)));
    --np-text: var(--nx-color-on-surface, var(--bs-body-color, #18202a));
    --np-card-text: var(--nx-color-on-card, var(--np-text));
    --np-muted: var(--nx-color-muted, var(--bs-secondary-color, #65707d));
    --np-border: var(--nx-color-card-border, var(--nx-component-border, var(--bs-border-color, rgba(24, 32, 42, .14))));
    --np-shadow: var(--nx-component-shadow, var(--nx-shadow-card, none));
    --np-button-bg: var(--nx-color-button-bg, var(--np-accent));
    --np-button-border: var(--nx-color-button-border, var(--np-button-bg));
    --np-button-text: var(--nx-color-button-text, var(--nx-on-inverse-text, #fff));
    box-sizing: border-box;
    width: 100%;
    margin: 0 0 3rem;
    color: var(--np-text);
    background: var(--np-bg);
}

.network-partners *,
.network-partners *::before,
.network-partners *::after { box-sizing: border-box; }
.network-partners .container { max-width: 1320px; padding-top: 18px; padding-right: 0; padding-left: 0; }

.np-hero {
    position: relative;
    padding: 26px 34px 28px;
    overflow: hidden;
    background: color-mix(in srgb, var(--np-card) 94%, var(--np-surface));
    border: 1px solid var(--np-border);
    border-radius: 16px 16px 0 0;
}

.np-hero-copy { max-width: 760px; }
.np-kicker { color: var(--np-muted); font-size: .84rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.np-hero h1 { margin: .25rem 0 .2rem; color: var(--np-text); font-size: clamp(1.85rem, 3vw, 2.7rem); font-weight: 800; letter-spacing: -.04em; }
.np-hero h1::first-letter { color: var(--np-text); }
.np-hero-subtitle { margin: 0 0 1.25rem; color: var(--np-text); font-size: 1.12rem; font-weight: 650; }
.np-hero-intro { max-width: 560px; margin: 0; color: var(--np-muted); line-height: 1.65; }

.np-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 18px 24px;
    background: var(--np-card);
    border: 1px solid var(--np-border);
    border-top: 0;
}
.np-filter-list { display: flex; flex-wrap: wrap; gap: 10px; }
.np-filter-list .btn { min-width: 82px; }
.np-search { position: relative; flex: 0 1 360px; margin: 0; }
.np-search .form-control { min-height: 42px; padding-right: 44px; color: var(--np-card-text); background: var(--np-card); border-color: var(--np-border); }
.np-search > span:last-child { position: absolute; top: 50%; right: 16px; color: var(--np-muted); font-size: 1.55rem; transform: translateY(-52%); pointer-events: none; }

.np-catalog { padding: 22px 28px 26px; background: var(--np-card); border: 1px solid var(--np-border); border-top: 0; border-radius: 0 0 16px 16px; box-shadow: var(--np-shadow); }
.np-section + .np-section { margin-top: 30px; }
.np-section-title { display: flex; align-items: center; gap: 12px; margin: 0 0 16px; color: var(--np-card-text); font-size: 1.35rem; font-weight: 750; }
.np-section-title > span { color: var(--np-accent); }

.np-main-slider { position: relative; padding-bottom: 24px; }
.np-main-slider .carousel-inner { position: relative; width: 100%; overflow: hidden; }
.np-main-slider .carousel-item { display: none; width: 100%; }
.np-main-slider .carousel-item.active { display: block; }
.np-main-card {
    overflow: hidden;
    display: grid;
    grid-template-columns: minmax(0, 56%) minmax(0, 44%);
    height: 320px;
    min-height: 0;
    color: var(--np-card-text);
    background: var(--np-card);
    border: 1px solid var(--np-border);
    border-radius: 16px;
    box-shadow: var(--np-shadow);
}
.np-main-media { position: relative; height: 320px; min-width: 0; min-height: 0; display: grid; place-items: center; overflow: hidden; background: var(--np-surface); border-right: 1px solid var(--np-border); }
.np-main-media img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: 100%; max-height: 100%; display: block; object-fit: cover; }
.np-main-body { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(24px, 4vw, 48px); }
.np-main-body h3 { margin: 0 0 .75rem; color: var(--np-card-text); font-size: clamp(1.6rem, 2.7vw, 2.25rem); font-weight: 800; }
.np-main-body .np-description { overflow: hidden; max-height: 6.6em; margin: 0 0 1rem; color: var(--np-muted); line-height: 1.65; }
.np-main-body .np-description > :first-child { margin-top: 0; }
.np-main-body .np-description > :last-child { margin-bottom: 0; }
.np-main-body .btn { margin-top: .4rem; }
.np-main-slider .carousel-control-prev,
.np-main-slider .carousel-control-next {
    top: 50%; width: 44px; height: 44px; color: var(--np-text); background: var(--np-card); border: 1px solid var(--np-border); border-radius: 50%; box-shadow: var(--np-shadow); opacity: 1; transform: translateY(-75%);
}
.np-main-slider .carousel-control-prev { left: -17px; }
.np-main-slider .carousel-control-next { right: -17px; }
.np-main-slider .carousel-control-prev > span:first-child,
.np-main-slider .carousel-control-next > span:first-child { font-size: 2rem; line-height: 1; }
.np-main-slider .carousel-indicators { bottom: -2px; margin-bottom: 0; }
.np-main-slider .carousel-indicators button { width: 9px; height: 9px; margin: 0 5px; background: var(--np-muted); border: 0; border-radius: 50%; }
.np-main-slider .carousel-indicators button.active { background: var(--np-accent); }

.np-grid { display: grid; gap: 20px; }
.np-grid-premium { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.np-grid-sponsors { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.np-grid-partners { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.np-card { overflow: hidden; min-width: 0; display: flex; flex-direction: column; color: var(--np-card-text); background: var(--np-card); border: 1px solid var(--np-border); border-radius: 12px; box-shadow: var(--np-shadow); transition: transform .2s ease, border-color .2s ease; }
.np-card:hover { transform: translateY(-3px); border-color: color-mix(in srgb, var(--np-accent) 55%, var(--np-border)); }
.np-card-media { height: 118px; display: grid; place-items: center; overflow: hidden; padding: 14px; background: var(--np-surface); border-bottom: 1px solid var(--np-border); }
.np-grid-premium .np-card-media { height: 145px; padding: 0; }
.np-card-media img { width: 100%; height: 100%; max-width: 100%; max-height: 100%; display: block; object-fit: contain; }
.np-grid-premium .np-card-media img { object-fit: cover; }
.np-card-body { flex: 1; display: flex; flex-direction: column; align-items: flex-start; padding: 18px; }
.np-card-body h3 { margin: 0 0 .55rem; color: var(--np-card-text); font-size: 1.12rem; font-weight: 750; }
.np-card-body .np-description { margin: 0 0 .9rem; color: var(--np-muted); font-size: .91rem; line-height: 1.52; }
.np-card-body .np-description > :first-child { margin-top: 0; }
.np-card-body .np-description > :last-child { margin-bottom: 0; }
.np-card-link { margin-top: auto; color: var(--np-accent); font-size: .9rem; font-weight: 700; text-decoration: none; }
.np-card-link:hover { color: var(--nx-color-link-hover, var(--np-accent)); }
.np-card-link span { display: inline-block; margin-left: .3rem; transition: transform .2s ease; }
.np-card-link:hover span { transform: translateX(3px); }
.np-tags { display: flex; flex-wrap: wrap; gap: 7px; margin: 0 0 1rem; }
.np-tags span { padding: .28rem .55rem; color: var(--np-accent); background: color-mix(in srgb, var(--np-accent) 10%, transparent); border-radius: 6px; font-size: .73rem; }
.np-logo-fallback { width: 78px; height: 78px; display: grid; place-items: center; color: var(--np-button-text); background: var(--np-accent); border-radius: 16px; font-size: 2rem; font-weight: 800; }

.np-cta { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 22px; margin-top: 32px; padding: 20px 24px; color: var(--np-card-text); background: linear-gradient(100deg, color-mix(in srgb, var(--np-accent) 8%, var(--np-card)), var(--np-card)); border: 1px solid var(--np-border); border-radius: 12px; }
.np-cta-icon { color: var(--np-accent); font-size: 2.8rem; }
.np-cta h2 { margin: 0 0 .2rem; color: var(--np-card-text); font-size: 1.16rem; font-weight: 750; }
.np-cta p { margin: 0; color: var(--np-muted); font-size: .9rem; }
.np-cta-actions { display: flex; gap: 12px; }
.np-empty, .np-no-results { width: 100%; margin: 18px 0 0; }

.network-partners .btn-primary {
    --bs-btn-bg: var(--np-button-bg);
    --bs-btn-border-color: var(--np-button-border);
    --bs-btn-color: var(--np-button-text);
    --bs-btn-hover-bg: var(--nx-color-button-hover-bg, var(--np-button-bg));
    --bs-btn-hover-border-color: var(--nx-color-button-hover-border, var(--np-button-border));
    --bs-btn-hover-color: var(--nx-color-button-hover-text, var(--np-button-text));
}
.network-partners .btn-outline-primary { --bs-btn-color: var(--np-accent); --bs-btn-border-color: color-mix(in srgb, var(--np-accent) 65%, var(--np-border)); --bs-btn-hover-bg: var(--np-button-bg); --bs-btn-hover-border-color: var(--np-button-border); --bs-btn-hover-color: var(--np-button-text); }
.np-entry[hidden], .np-section[hidden], .np-no-results[hidden] { display: none !important; }

@media (max-width: 1199px) {
    .np-grid-partners { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .np-grid-sponsors { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 991px) {
    .np-toolbar { align-items: stretch; flex-direction: column; }
    .np-search { flex-basis: auto; width: 100%; }
    .np-main-card { height: auto; grid-template-columns: 1fr; }
    .np-main-media { height: 240px; min-height: 0; border-right: 0; border-bottom: 1px solid var(--np-border); }
    .np-grid-premium, .np-grid-sponsors, .np-grid-partners { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .np-cta { grid-template-columns: auto 1fr; }
    .np-cta-actions { grid-column: 1 / -1; }
}
@media (max-width: 575px) {
    .network-partners .container { padding-right: 12px; padding-left: 12px; }
    .np-hero { padding: 24px 22px; }
    .np-toolbar, .np-catalog { padding: 16px; }
    .np-filter-list .btn { flex: 1 1 calc(50% - 10px); }
    .np-grid-premium, .np-grid-sponsors, .np-grid-partners { grid-template-columns: 1fr; }
    .np-main-body { padding: 24px 20px; }
    .np-cta { grid-template-columns: 1fr; text-align: center; }
    .np-cta-icon { display: none; }
    .np-cta-actions { grid-column: auto; flex-direction: column; }
    .np-cta-actions .btn { width: 100%; }
}
