/* ============================================================
   KABEX — SEO Content (.seo-content)
   2-kolumnowy layout: lewy sticky TOC + brand card | prawy content.
   ============================================================ */

.seo-content {
    padding: var(--sp-16) 0 var(--sp-20);
    background: var(--color-bg-alt);
    border-top: 1px solid var(--color-border);
}

/* ── Header z H1 (full width — bez ograniczenia szerokości) ── */
.seo-content__header {
    margin-bottom: var(--sp-10);
    padding-bottom: var(--sp-5);
    border-bottom: 3px solid var(--color-primary);
}

.seo-content__h1 {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(var(--fs-2xl), 4vw, var(--fs-4xl));
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -0.015em;
    text-transform: uppercase;
    color: var(--color-dark);
}

/* ── Grid 2-kol ──────────────────────────────────────────── */
.seo-content__grid {
    display: grid;
    grid-template-columns: minmax(0, 280px) minmax(0, 1fr);
    gap: var(--sp-10);
    align-items: start;
}

/* ── LEFT — Sticky sidebar ───────────────────────────────── */
/* top: pełna wysokość headera (topbar 40 + main 80 + nav 48) + dodatkowy
   bufor 40px, żeby nav po slide-down nie zasłaniał TOC podczas scroll-up. */
.seo-content__sidebar {
    position: sticky;
    top: calc(var(--header-topbar-h, 40px) + var(--header-main-h, 80px) + var(--header-nav-h, 48px) + var(--sp-10));
    display: flex;
    flex-direction: column;
    gap: var(--sp-5);
}

/* TOC (auto-generated z H2) */
.seo-content__toc {
    background: #fff;
    border: 1px solid var(--color-border);
    padding: var(--sp-5);
}

.seo-content__toc-title {
    margin: 0 0 var(--sp-3);
    padding-bottom: var(--sp-2);
    border-bottom: 2px solid var(--color-primary);
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--color-text-muted);
}

.seo-content__toc-list {
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: seo-toc;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.seo-content__toc-list li {
    counter-increment: seo-toc;
}

.seo-content__toc-list a {
    display: block;
    padding: 8px 10px 8px 32px;
    position: relative;
    font-family: var(--font-sans);
    font-size: var(--fs-sm);
    font-weight: 600;
    line-height: 1.35;
    color: var(--color-text);
    text-decoration: none;
    border-left: 2px solid transparent;
    transition: background var(--t-fast), border-color var(--t-fast), color var(--t-fast);
}

.seo-content__toc-list a::before {
    content: counter(seo-toc, decimal-leading-zero);
    position: absolute;
    left: 8px;
    top: 8px;
    font-family: var(--font-display);
    font-size: 11px;
    font-weight: 800;
    color: var(--color-primary);
    opacity: 0.5;
    transition: opacity var(--t-fast);
}

.seo-content__toc-list a:hover {
    background: var(--color-bg);
    border-left-color: var(--color-primary);
    color: var(--color-primary);
}

.seo-content__toc-list a:hover::before {
    opacity: 1;
}

.seo-content__toc-list a.is-active {
    background: var(--color-primary-tint);
    border-left-color: var(--color-primary);
    color: var(--color-primary-dark);
    font-weight: 700;
}

.seo-content__toc-list a.is-active::before {
    opacity: 1;
    color: var(--color-primary-dark);
}

/* ── RIGHT — Main content typography ─────────────────────── */
.seo-content__body {
    font-family: var(--font-sans);
    font-size: var(--fs-base);
    line-height: 1.75;
    color: var(--color-text);
    /* Brak max-width — content fill całej kolumny. Wizualne bloki
       (stats, quick-cats, callout, brands, cta-banner) wypełniają przestrzeń. */
}

.seo-content__body > * + * {
    margin-top: var(--sp-4);
}

/* Lead paragraph */
.seo-content__body .seo-content__lead {
    font-size: var(--fs-md);
    line-height: 1.7;
    color: var(--color-dark);
    padding-left: var(--sp-4);
    border-left: 4px solid var(--color-primary);
}

/* Paragrafy */
.seo-content__body p {
    margin: 0;
}

.seo-content__body strong {
    color: var(--color-dark);
    font-weight: 700;
}

/* H2 — z anchor offset dla sticky header */
.seo-content__body h2 {
    margin: var(--sp-10) 0 var(--sp-3) !important;
    font-family: var(--font-display);
    font-size: var(--fs-2xl);
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -0.01em;
    text-transform: uppercase;
    color: var(--color-dark);
    position: relative;
    padding-left: var(--sp-4);
    scroll-margin-top: 120px;  /* offset dla sticky header gdy klik z TOC */
}

.seo-content__body h2::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.4em;
    bottom: 0.15em;
    width: 5px;
    background: var(--color-accent);
}

.seo-content__body > h2:first-child,
.seo-content__body > *:first-child + h2 {
    margin-top: var(--sp-6) !important;
}

/* H3 */
.seo-content__body h3 {
    margin: var(--sp-6) 0 var(--sp-2) !important;
    font-family: var(--font-sans);
    font-size: var(--fs-lg);
    font-weight: 700;
    line-height: 1.3;
    color: var(--color-primary);
    scroll-margin-top: 120px;
}

/* Listy */
.seo-content__body ul,
.seo-content__body ol {
    margin: 0;
    padding-left: 0;
    list-style: none;
}

.seo-content__body ul li,
.seo-content__body ol li {
    position: relative;
    padding-left: var(--sp-6);
    margin-bottom: var(--sp-2);
}

.seo-content__body ul li::before {
    content: '';
    position: absolute;
    left: 4px;
    top: 0.7em;
    width: 8px;
    height: 8px;
    background: var(--color-primary);
    transform: rotate(45deg);
}

.seo-content__body ol {
    counter-reset: seo-list;
}

.seo-content__body ol li {
    counter-increment: seo-list;
}

.seo-content__body ol li::before {
    content: counter(seo-list) ".";
    position: absolute;
    left: 0;
    top: 0;
    color: var(--color-primary);
    font-weight: 800;
    font-family: var(--font-display);
}

/* Linki */
.seo-content__body a {
    color: var(--color-primary);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    transition: color var(--t-fast);
}

.seo-content__body a:hover {
    color: var(--color-primary-dark);
}

/* ╔══════════════════════════════════════════════════════════╗
   ║ WIZUALNE BLOKI W CONTENT — wypełniają prawą stronę        ║
   ╚══════════════════════════════════════════════════════════╝ */

/* ── Stats row (4 big numbers) ───────────────────────────── */
.seo-content__body .seo-content__stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--sp-3);
    margin: var(--sp-6) 0 var(--sp-4) !important;
}

.seo-content__stat {
    background: #fff;
    border: 1px solid var(--color-border);
    padding: var(--sp-4);
    display: flex;
    flex-direction: column;
    gap: 4px;
    transition: border-color var(--t-fast), transform var(--t-fast);
}

.seo-content__stat:hover {
    border-color: var(--color-primary);
    transform: translateY(-2px);
}

.seo-content__stat-num {
    font-family: var(--font-display);
    font-size: var(--fs-3xl);
    font-weight: 800;
    line-height: 1;
    color: var(--color-primary);
    letter-spacing: -0.02em;
}

.seo-content__stat-num small {
    font-size: 0.55em;
    color: var(--color-text-muted);
    font-weight: 600;
    margin-left: 2px;
}

.seo-content__stat-label {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-text-muted);
    line-height: 1.3;
}

/* ── Quick categories grid (6 link tiles) ────────────────── */
.seo-content__body .seo-content__quick-cats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--sp-2);
    margin: var(--sp-5) 0 !important;
}

.seo-content__quick-cat {
    display: grid;
    grid-template-columns: 40px 1fr;
    grid-template-rows: auto auto;
    gap: 2px var(--sp-3);
    padding: var(--sp-3) var(--sp-4);
    background: #fff;
    border: 1px solid var(--color-border);
    text-decoration: none !important;
    color: var(--color-text);
    transition: border-color var(--t-fast), background var(--t-fast), transform var(--t-fast);
}

.seo-content__quick-cat:hover {
    border-color: var(--color-primary);
    background: var(--color-primary-tint);
    transform: translateY(-2px);
}

.seo-content__quick-cat-icon {
    grid-row: 1 / 3;
    align-self: center;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: var(--color-primary-tint);
    color: var(--color-primary);
}

.seo-content__quick-cat strong {
    font-family: var(--font-sans);
    font-size: var(--fs-sm);
    font-weight: 700;
    color: var(--color-dark);
    line-height: 1.2;
}

.seo-content__quick-cat span:not(.seo-content__quick-cat-icon) {
    font-size: 11px;
    color: var(--color-text-muted);
    line-height: 1.3;
}

/* ── Callout box (pull quote / "wiesz, że…") ─────────────── */
.seo-content__body .seo-content__callout {
    display: block;
    background: var(--color-primary-tint);
    border-left: 5px solid var(--color-primary);
    padding: var(--sp-4) var(--sp-5);
    margin: var(--sp-6) 0 !important;
    font-size: var(--fs-md);
    line-height: 1.55;
    color: var(--color-dark);
    max-width: none;
}

.seo-content__callout strong {
    display: block;
    margin-bottom: 4px;
    color: var(--color-primary);
    font-weight: 800;
    font-size: 11px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

/* ── Brands strip ────────────────────────────────────────── */
.seo-content__body .seo-content__brands {
    margin: var(--sp-5) 0 !important;
    padding: var(--sp-4);
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    border-left: 4px solid var(--color-accent);
}

.seo-content__brands-label {
    display: block;
    margin-bottom: var(--sp-2);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--color-text-muted);
}

.seo-content__body .seo-content__brands ul {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    list-style: none;
    margin: 0 !important;
    padding: 0;
}

.seo-content__body .seo-content__brands li {
    padding: 4px 12px;
    background: #fff;
    border: 1px solid var(--color-border);
    font-family: var(--font-sans);
    font-size: 12px;
    font-weight: 700;
    color: var(--color-dark);
    letter-spacing: 0.04em;
    margin: 0;
}

.seo-content__body .seo-content__brands li::before {
    content: none;
}

/* ── CTA Banner (na końcu content) ───────────────────────── */
.seo-content__body .seo-content__cta-banner {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: var(--sp-5);
    align-items: center;
    margin: var(--sp-8) 0 var(--sp-4) !important;
    padding: var(--sp-5) var(--sp-6);
    background:
        linear-gradient(135deg, var(--color-dark) 0%, #0F1923 100%);
    color: #fff;
    position: relative;
    overflow: hidden;
}

.seo-content__body .seo-content__cta-banner::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: radial-gradient(circle, rgba(255, 255, 255, 0.04) 1px, transparent 1px);
    background-size: 20px 20px;
    pointer-events: none;
}

.seo-content__cta-text {
    position: relative;
}

.seo-content__cta-text strong {
    display: block;
    margin-bottom: 4px;
    font-family: var(--font-display);
    font-size: var(--fs-xl);
    font-weight: 800;
    text-transform: uppercase;
    color: #fff !important;
    letter-spacing: -0.01em;
}

.seo-content__body .seo-content__cta-text p {
    margin: 0;
    font-size: var(--fs-sm);
    color: rgba(255, 255, 255, 0.75);
    line-height: 1.5;
    max-width: none;
}

.seo-content__cta-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: var(--sp-2);
    flex-shrink: 0;
    padding: 14px var(--sp-5);
    background: var(--color-accent);
    color: var(--color-dark) !important;
    font-family: var(--font-sans);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    text-decoration: none !important;
    transition: background var(--t-fast), gap var(--t-fast), transform var(--t-fast);
}

.seo-content__cta-btn:hover {
    background: var(--color-accent-dark);
    gap: var(--sp-3);
    transform: translateY(-1px);
}

/* ── Responsive ──────────────────────────────────────────── */
@media (max-width: 1024px) {
    .seo-content__grid {
        grid-template-columns: 1fr;
        gap: var(--sp-6);
    }

    .seo-content__sidebar {
        position: static;
    }

    .seo-content__toc {
        max-width: 100%;
    }
}

@media (max-width: 1024px) {
    .seo-content__body .seo-content__stats {
        grid-template-columns: repeat(2, 1fr);
    }

    .seo-content__body .seo-content__quick-cats {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .seo-content {
        padding: var(--sp-12) 0 var(--sp-14);
    }

    .seo-content__sidebar {
        flex-direction: column;
    }

    .seo-content__body {
        font-size: var(--fs-sm);
    }

    .seo-content__body h2 {
        font-size: var(--fs-xl);
    }

    .seo-content__body h3 {
        font-size: var(--fs-md);
    }

    .seo-content__body .seo-content__lead {
        font-size: var(--fs-base);
    }

    .seo-content__body .seo-content__cta-banner {
        grid-template-columns: 1fr;
        padding: var(--sp-4);
    }

    .seo-content__cta-text strong {
        font-size: var(--fs-lg);
    }

    .seo-content__stat-num {
        font-size: var(--fs-2xl);
    }
}

@media (max-width: 480px) {
    .seo-content__body .seo-content__stats,
    .seo-content__body .seo-content__quick-cats {
        grid-template-columns: 1fr;
    }
}
