/* Kontenery i Siatki */
.container {
    width: 100%;
    max-width: var(--container-max-width);
    margin: 0 auto;
    padding: 0 20px;
}

.site-main {
    min-height: 60vh;
    padding: 40px 0;
}

.grid {
    display: grid;
    gap: 24px;
}

.grid-4-cols {
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
}

.grid-2-cols {
    grid-template-columns: repeat(2, 1fr);
}

/* Siatka koszulek na stronie sklepu */
.grid-3-cols {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
    gap: 24px;
    list-style: none;
    padding: 0;
    margin-top: 24px;
}

/* Media Queries (Responsywność) */
@media (max-width: 768px) {
    .grid-2-cols {
        grid-template-columns: 1fr;
    }
}


/* Sidebar i Filtry */
.shop-sidebar {
    background-color: var(--color-white);
    padding: 24px;
    border: 1px solid #eaeaea;
    border-radius: var(--radius-md);
    height: fit-content;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
}

.shop-sidebar__title {
    font-family: var(--font-heading);
    font-size: 1.2rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 20px;
    padding-bottom: 10px;
    border-bottom: 2px solid var(--color-dark);
}

.shop-filter-widget {
    margin-bottom: 24px;
}

.shop-filter-widget:last-child {
    margin-bottom: 0;
}

.shop-filter-widget h4 {
    font-size: 0.85rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 12px;
    color: var(--color-dark);
}

.shop-filter-widget ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.shop-filter-widget ul li {
    padding: 8px 0;
    font-size: 0.88rem;
    border-bottom: 1px solid #f2f2f2;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.shop-filter-widget ul li a {
    color: #444;
    transition: color var(--transition-fast);
}

.shop-filter-widget ul li a:hover {
    color: var(--color-primary);
}

/* Stylizowanie elementów formularzy w sidebarze (np. wybór ceny, listy) */
.shop-sidebar select, 
.shop-sidebar input[type="text"] {
    width: 100%;
    padding: 8px 12px;
    border: 1px solid #ddd;
    border-radius: var(--radius-sm);
    font-family: inherit;
    font-size: 0.85rem;
    outline: none;
    transition: border-color var(--transition-fast);
}

.shop-sidebar select:focus, 
.shop-sidebar input[type="text"]:focus {
    border-color: var(--color-dark);
}

/* ===========================
   Podświetlenie aktywnego filtra
=========================== */
.shop-filter-widget ul li.chosen a,
.shop-filter-widget ul li.current-cat a,
.shop-filter-widget ul li.is-checked a {
    color: var(--color-primary);
    font-weight: 700;
}

/* Opcjonalnie: dodanie subtelnego tła lub wskaźnika po lewej stronie aktywnego filtra */
.shop-filter-widget ul li.chosen,
.shop-filter-widget ul li.current-cat,
.shop-filter-widget ul li.is-checked {
    background-color: var(--color-gray-light);
    padding-left: 8px;
    border-radius: var(--radius-sm);
    border-bottom-color: transparent;
}
/* WooCommerce standard content wrapper */
#primary > .site-main {
    width: 100%;
    max-width: var(--container-max-width);
    margin: 0 auto;
    padding: var(--space-7) 20px;
}

/* Strony informacyjne i prawne */
.legal-page {
    max-width: 880px;
    margin: 0 auto;
}

.legal-page__header {
    margin-bottom: var(--space-5);
    padding: var(--space-6);
    border-left: 4px solid var(--color-primary);
    background: #fafafa;
}

.legal-page__eyebrow {
    margin: 0 0 var(--space-2);
    color: var(--color-primary);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.legal-page__header h1 {
    margin: 0 0 var(--space-2);
    font-family: var(--font-heading);
    font-size: clamp(2rem, 4vw, 3rem);
    text-transform: uppercase;
}

.legal-page__header p:last-child {
    margin: 0;
    color: #5f5f5f;
}

.legal-page__content {
    padding: var(--space-6);
    border: 1px solid #e6e6e6;
    border-radius: var(--radius-md);
    background: var(--color-white);
    box-shadow: var(--shadow-card);
}

.legal-page__content h2 {
    margin: var(--space-5) 0 var(--space-2);
    padding-top: var(--space-5);
    border-top: 1px solid #e9e9e9;
    font-family: var(--font-heading);
    font-size: 1.35rem;
    text-transform: uppercase;
}

.legal-page__content h2:first-child {
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
}

.legal-page__content p {
    margin: 0;
    color: #454545;
}

@media (max-width: 640px) {
    .legal-page__header,
    .legal-page__content {
        padding: var(--space-4);
    }
}

/* Informational pages: compact, readable composition on phones. */
@media (max-width: 640px) {
    #main-content:has(.legal-page) {
        padding: 24px 12px 32px;
    }

    .legal-page {
        max-width: none;
        width: 100%;
    }

    .legal-page__header {
        margin-bottom: 16px;
        padding: 18px 16px;
        border-left-width: 3px;
    }

    .legal-page__eyebrow {
        font-size: .64rem;
        margin-bottom: 5px;
    }

    .legal-page__header h1 {
        font-size: clamp(1.75rem, 9vw, 2.2rem);
        line-height: 1.05;
        margin-bottom: 8px;
    }

    .legal-page__header p:last-child {
        font-size: .9rem;
        line-height: 1.5;
    }

    .legal-page__content {
        padding: 18px 16px;
        border-radius: 6px;
        box-shadow: 0 3px 10px rgba(0, 0, 0, .06);
    }

    .legal-page__content h2 {
        font-size: 1.2rem;
        line-height: 1.15;
        margin: 28px 0 10px;
        padding-top: 28px;
    }

    .legal-page__content p,
    .legal-page__content li {
        font-size: .92rem;
        line-height: 1.62;
    }

    .legal-page__content p + p {
        margin-top: 12px;
    }

    .legal-page__content ul,
    .legal-page__content ol {
        margin: 12px 0 0 1.15rem;
    }

    .legal-page__demo-notice {
        margin: 24px 0;
        padding: 14px 14px 14px 16px;
        border-left: 3px solid var(--color-primary);
        background: #fff7f7;
    }

    .legal-page__demo-notice h2 {
        margin-top: 0;
        padding-top: 0;
        border-top: 0;
    }
}